openapi: 3.0.3
info:
  title: 'Documentation | Good2Go'
  description: 'Good2Go provides an HTTP-based API for integrating with your existing backend. Many functionalities of Good2Go are accessible through these REST APIs. You can use any scripting language to call these APIs. These APIs virtually allow Good2Go to be driven by external systems like an MIS solution, or drive downstream applications such as workflow automation solutions.'
  version: 1.0.0
servers:
  -
    url: 'https://www.review.good2gosoftware.com'
paths:
  /api/v1/jobs:
    get:
      summary: 'Get job list'
      operationId: getJobList
      description: "The jobs are filtered by query parameters as described below. The response\nis <i>paginated data</i>. The number of jobs returned as part of this query\ndepends upon the \"<b>Items shown per page</b>\" setup in user settings. In\nthe response, the page information can be found inside the <code>meta</code>\nfield.\n\n<aside class=\"notice info\">\n To get all children of a folder, provide the <code>parent</code> value in\n the query. To get a specific child, provide value to the <code>name</code>\n field along with the <code>parent</code> field.<br><br>\n For example, to get the children with the name \"123 - Print\" inside a folder\n with GUID <code>292fb01f-23ad-4d42-b126-251bd95d2637</code>, provide the\n API queries as follows:<br><br>\n     <code>/api/v1/jobs?parent=292fb01f-23ad-4d42-b126-251bd95d2637&name=\"123 - Print\"</code>\n</aside>"
      parameters:
        -
          in: query
          name: assignee
          description: "The assignee options [ any, none, only, user ] <br>\n     any  - jobs assigned to current user or owned by current user <br>\n     none - jobs which are not assigned to any one <br>\n     only - jobs are assigned to current user or owned by current user but assigned to another user <br>\n     user - jobs assigned to current user <br>\n     \n<aside class=\"warning\">\n  Use carefully in conjunction with 'parent' query field.\n</aside>"
          example: null
          required: false
          schema:
            type: string
            description: "The assignee options [ any, none, only, user ] <br>\n     any  - jobs assigned to current user or owned by current user <br>\n     none - jobs which are not assigned to any one <br>\n     only - jobs are assigned to current user or owned by current user but assigned to another user <br>\n     user - jobs assigned to current user <br>\n     \n<aside class=\"warning\">\n  Use carefully in conjunction with 'parent' query field.\n</aside>"
            example: null
        -
          in: query
          name: customer
          description: 'Customer email address.'
          example: null
          required: false
          schema:
            type: string
            description: 'Customer email address.'
            example: null
        -
          in: query
          name: date_for
          description: "The associated field for start and end date. The\n     valid values are [assigned_at, created_at, due_at, reviewed_at, updated_at].\n     By default, if parameter is not provided, it assume the dates are for\n     'due_at'."
          example: reviewed_at
          required: false
          schema:
            type: string
            description: "The associated field for start and end date. The\n     valid values are [assigned_at, created_at, due_at, reviewed_at, updated_at].\n     By default, if parameter is not provided, it assume the dates are for\n     'due_at'."
            example: reviewed_at
        -
          in: query
          name: dir_only
          description: "If defined then files are ignored and only folders\n     are selected. (<i>Note: Its value is ignored</i>)"
          example: null
          required: false
          schema:
            type: boolean
            description: "If defined then files are ignored and only folders\n     are selected. (<i>Note: Its value is ignored</i>)"
            example: null
        -
          in: query
          name: end_date
          description: "The end date for field defined in 'date_for'.\n     (ISO UTC datetime). For example, 2021-01-25T14:13:10.000Z."
          example: null
          required: false
          schema:
            type: string
            description: "The end date for field defined in 'date_for'.\n     (ISO UTC datetime). For example, 2021-01-25T14:13:10.000Z."
            example: null
        -
          in: query
          name: flat
          description: "If 'true' then all kind of jobs (file and folder) are\n     returned. See also 'parent' parameter."
          example: null
          required: false
          schema:
            type: boolean
            description: "If 'true' then all kind of jobs (file and folder) are\n     returned. See also 'parent' parameter."
            example: null
        -
          in: query
          name: file_only
          description: "If defined then folders are ignored and only\n     files are selected. (<i>Note: Its value is ignored</i>)"
          example: null
          required: false
          schema:
            type: boolean
            description: "If defined then folders are ignored and only\n     files are selected. (<i>Note: Its value is ignored</i>)"
            example: null
        -
          in: query
          name: name
          description: 'Name of the job to match.'
          example: null
          required: false
          schema:
            type: string
            description: 'Name of the job to match.'
            example: null
        -
          in: query
          name: page
          description: "The page number. Number items returns per page depends\n     upon the user settings."
          example: null
          required: false
          schema:
            type: integer
            description: "The page number. Number items returns per page depends\n     upon the user settings."
            example: null
        -
          in: query
          name: parent
          description: "The GUID of the parent. If empty then top level\n     items are returned."
          example: null
          required: false
          schema:
            type: string
            description: "The GUID of the parent. If empty then top level\n     items are returned."
            example: null
        -
          in: query
          name: p_email
          description: 'Partner email address.'
          example: null
          required: false
          schema:
            type: string
            description: 'Partner email address.'
            example: null
        -
          in: query
          name: sort_column
          description: "Valid values are:\n     <ul style=\"padding-left: 4rem\">\n         <li>asg_email</li>\n         <li>created_at</li>\n         <li>customer</li>\n         <li>due_at</li>\n         <li>name</li>\n         <li>owner</li>\n         <li>p_email</li>\n         <li>size</li>\n         <li>updated_at</li>\n     </ul>"
          example: created_at
          required: false
          schema:
            type: string
            description: "Valid values are:\n     <ul style=\"padding-left: 4rem\">\n         <li>asg_email</li>\n         <li>created_at</li>\n         <li>customer</li>\n         <li>due_at</li>\n         <li>name</li>\n         <li>owner</li>\n         <li>p_email</li>\n         <li>size</li>\n         <li>updated_at</li>\n     </ul>"
            example: created_at
        -
          in: query
          name: sort_direction
          description: 'Valid values are [ ASC, DESC].'
          example: ASC
          required: false
          schema:
            type: string
            description: 'Valid values are [ ASC, DESC].'
            example: ASC
        -
          in: query
          name: state
          description: "Supported values [ deleted ]. <br>\n     deleted - Returned items found in trash."
          example: null
          required: false
          schema:
            type: string
            description: "Supported values [ deleted ]. <br>\n     deleted - Returned items found in trash."
            example: null
        -
          in: query
          name: status
          description: "Valid values are [ new, approved, rejected, pending,\n     processing, expired ]."
          example: null
          required: false
          schema:
            type: string
            description: "Valid values are [ new, approved, rejected, pending,\n     processing, expired ]."
            example: null
        -
          in: query
          name: start_date
          description: "The start date for field defined in 'date_for'\n     (ISO UTC datetime). For example, 2021-01-25T14:13:10.000Z."
          example: null
          required: false
          schema:
            type: string
            description: "The start date for field defined in 'date_for'\n     (ISO UTC datetime). For example, 2021-01-25T14:13:10.000Z."
            example: null
        -
          in: query
          name: type
          description: "The document mime type associated with job. For example,\n     application/pdf, text/plain, image/png, etc."
          example: null
          required: false
          schema:
            type: string
            description: "The document mime type associated with job. For example,\n     application/pdf, text/plain, image/png, etc."
            example: null
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  ac:
                    can_assign: true
                    can_delete: true
                    can_edit: true
                    can_view: true
                    control_job: true
                    delete_options:
                      action: trash
                    doc_token: null
                  data:
                    -
                      ac:
                        can_delete: true
                        can_download: true
                        can_edit: true
                        can_view: true
                      asg_email: tom.jerry@tj.com
                      c_email: my.customer@domain.com
                      created_at: '2022-06-20T17:05:45.000Z'
                      cus_download: true
                      deleted_at: null
                      due_at: '2022-06-30T14:54:22.000Z'
                      guid: 3d6daf30-6f86-4980-8b82-8520e5872986
                      has_comment: false
                      is_folder: false
                      is_own: true
                      is_portal: false
                      is_watching: false
                      locked: false
                      name: 'Image Test File.png'
                      newly_assigned: false
                      parent_guid: b17a8274-184c-4cb8-a9a7-5f006f41c0ac
                      p_email: partner@domain.com
                      path_url: 'https://www.good2gosoftware.com/review/file/3d6daf30-6f86-4980-8b82-8520e5872986/document/Image%20Test%20File.png?version=25'
                      reminded_at: null
                      set_to_me: false
                      size: 14975
                      source: in-app
                      status: approved
                      type: image/png
                      updated_at: '2022-06-20T17:05:45.000Z'
                      user_email: niranjanbai@yahoo.com
                      version: 25
                    -
                      ac:
                        can_delete: true
                        can_download: true
                        can_edit: true
                        can_view: true
                      asg_email: null
                      c_email: null
                      created_at: '2022-06-17T18:28:51.000Z'
                      cus_download: false
                      deleted_at: null
                      due_at: null
                      guid: fe4a0d40-34fd-4050-90ae-f8622b5ac528
                      has_comment: false
                      is_folder: true
                      is_own: true
                      is_portal: false
                      is_watching: false
                      locked: true
                      name: 'Test Folder'
                      newly_assigned: false
                      parent_guid: b17a8274-184c-4cb8-a9a7-5f006f41c0ac
                      p_email: null
                      path_url: null
                      reminded_at: null
                      set_to_me: false
                      size: 0
                      source: in-app
                      status: new
                      type: null
                      updated_at: '2022-06-17T18:28:51.000Z'
                      user_email: niranjanbai@yahoo.com
                      version: 1
                  guid: b17a8274-184c-4cb8-a9a7-5f006f41c0ac
                  links:
                    first: 'https://www.good2gosoftware.com/api/v1/jobs?page=1'
                    last: 'https://www.good2gosoftware.com/api/v1/jobs?page=2'
                    prev: null
                    next: 'https://www.good2gosoftware.com/api/v1/jobs?page=2'
                  meta:
                    current_page: 1
                    from: 1
                    last_page: 2
                    path: 'https://www.good2gosoftware.com/api/v1/jobs'
                    per_page: 10
                    to: 10
                    total: 12
                  name: 'Customer Folder'
                  parent_guid: ''
                  p_email: null
                properties:
                  ac:
                    type: object
                    properties:
                      can_assign:
                        type: boolean
                        example: true
                      can_delete:
                        type: boolean
                        example: true
                      can_edit:
                        type: boolean
                        example: true
                      can_view:
                        type: boolean
                        example: true
                      control_job:
                        type: boolean
                        example: true
                      delete_options:
                        type: object
                        properties:
                          action:
                            type: string
                            example: trash
                      doc_token:
                        type: string
                        example: null
                  data:
                    type: array
                    example:
                      -
                        ac:
                          can_delete: true
                          can_download: true
                          can_edit: true
                          can_view: true
                        asg_email: tom.jerry@tj.com
                        c_email: my.customer@domain.com
                        created_at: '2022-06-20T17:05:45.000Z'
                        cus_download: true
                        deleted_at: null
                        due_at: '2022-06-30T14:54:22.000Z'
                        guid: 3d6daf30-6f86-4980-8b82-8520e5872986
                        has_comment: false
                        is_folder: false
                        is_own: true
                        is_portal: false
                        is_watching: false
                        locked: false
                        name: 'Image Test File.png'
                        newly_assigned: false
                        parent_guid: b17a8274-184c-4cb8-a9a7-5f006f41c0ac
                        p_email: partner@domain.com
                        path_url: 'https://www.good2gosoftware.com/review/file/3d6daf30-6f86-4980-8b82-8520e5872986/document/Image%20Test%20File.png?version=25'
                        reminded_at: null
                        set_to_me: false
                        size: 14975
                        source: in-app
                        status: approved
                        type: image/png
                        updated_at: '2022-06-20T17:05:45.000Z'
                        user_email: niranjanbai@yahoo.com
                        version: 25
                      -
                        ac:
                          can_delete: true
                          can_download: true
                          can_edit: true
                          can_view: true
                        asg_email: null
                        c_email: null
                        created_at: '2022-06-17T18:28:51.000Z'
                        cus_download: false
                        deleted_at: null
                        due_at: null
                        guid: fe4a0d40-34fd-4050-90ae-f8622b5ac528
                        has_comment: false
                        is_folder: true
                        is_own: true
                        is_portal: false
                        is_watching: false
                        locked: true
                        name: 'Test Folder'
                        newly_assigned: false
                        parent_guid: b17a8274-184c-4cb8-a9a7-5f006f41c0ac
                        p_email: null
                        path_url: null
                        reminded_at: null
                        set_to_me: false
                        size: 0
                        source: in-app
                        status: new
                        type: null
                        updated_at: '2022-06-17T18:28:51.000Z'
                        user_email: niranjanbai@yahoo.com
                        version: 1
                    description: "An array of jobs which match the url query. Refer to the\n     example for more details. Also refer to:\n     <a href=\"#job-management-GETapi-v1-jobs--job_guid-\">Get job information</a>"
                    items:
                      type: object
                      properties:
                        ac:
                          type: object
                          properties:
                            can_delete:
                              type: boolean
                              example: true
                            can_download:
                              type: boolean
                              example: true
                            can_edit:
                              type: boolean
                              example: true
                            can_view:
                              type: boolean
                              example: true
                        asg_email:
                          type: string
                          example: tom.jerry@tj.com
                        c_email:
                          type: string
                          example: my.customer@domain.com
                        created_at:
                          type: string
                          example: '2022-06-20T17:05:45.000Z'
                        cus_download:
                          type: boolean
                          example: true
                        deleted_at:
                          type: string
                          example: null
                        due_at:
                          type: string
                          example: '2022-06-30T14:54:22.000Z'
                        guid:
                          type: string
                          example: 3d6daf30-6f86-4980-8b82-8520e5872986
                        has_comment:
                          type: boolean
                          example: false
                        is_folder:
                          type: boolean
                          example: false
                        is_own:
                          type: boolean
                          example: true
                        is_portal:
                          type: boolean
                          example: false
                        is_watching:
                          type: boolean
                          example: false
                        locked:
                          type: boolean
                          example: false
                        name:
                          type: string
                          example: 'Image Test File.png'
                        newly_assigned:
                          type: boolean
                          example: false
                        parent_guid:
                          type: string
                          example: b17a8274-184c-4cb8-a9a7-5f006f41c0ac
                        p_email:
                          type: string
                          example: partner@domain.com
                        path_url:
                          type: string
                          example: 'https://www.good2gosoftware.com/review/file/3d6daf30-6f86-4980-8b82-8520e5872986/document/Image%20Test%20File.png?version=25'
                        reminded_at:
                          type: string
                          example: null
                        set_to_me:
                          type: boolean
                          example: false
                        size:
                          type: integer
                          example: 14975
                        source:
                          type: string
                          example: in-app
                        status:
                          type: string
                          example: approved
                        type:
                          type: string
                          example: image/png
                        updated_at:
                          type: string
                          example: '2022-06-20T17:05:45.000Z'
                        user_email:
                          type: string
                          example: niranjanbai@yahoo.com
                        version:
                          type: integer
                          example: 25
                  guid:
                    type: string
                    example: b17a8274-184c-4cb8-a9a7-5f006f41c0ac
                    description: "The GUID of the current folder. This is same as parent GUID\n     passed on the url query. It could be empty or null, which mean the root folder\n     (Desktop)."
                  links:
                    type: object
                    properties:
                      first:
                        type: string
                        example: 'https://www.good2gosoftware.com/api/v1/jobs?page=1'
                      last:
                        type: string
                        example: 'https://www.good2gosoftware.com/api/v1/jobs?page=2'
                      prev:
                        type: string
                        example: null
                      next:
                        type: string
                        example: 'https://www.good2gosoftware.com/api/v1/jobs?page=2'
                  meta:
                    type: object
                    properties:
                      current_page:
                        type: integer
                        example: 1
                      from:
                        type: integer
                        example: 1
                      last_page:
                        type: integer
                        example: 2
                      path:
                        type: string
                        example: 'https://www.good2gosoftware.com/api/v1/jobs'
                      per_page:
                        type: integer
                        example: 10
                      to:
                        type: integer
                        example: 10
                      total:
                        type: integer
                        example: 12
                  name:
                    type: string
                    example: 'Customer Folder'
                    description: 'The name of folder. It could be empty which mean the root folder.'
                  parent_guid:
                    type: string
                    example: ''
                    description: 'The GUID of the parent folder, if any.'
                  p_email:
                    type: string
                    example: null
      tags:
        - 'Job management'
    post:
      summary: 'Create a new job'
      operationId: createANewJob
      description: "This method can be used basically to create a folder.\nYou can create a folder by setting the parameter 'is_folder' to 'true'.\n\n<aside class=\"notice info\">\n Job of file kind can only be created through upload method. In Good2Go a job\n of file kind can't exist without an attached file.\n</aside>\n\n<aside class=\"notice info\">\n If customer or partner information are provided, especially name and email,\n then they are stored in customer records for future reference. If same email\n already exists in the record but name is changed then existing customer data\n is updated in the records.\n</aside>\n\n<aside class=\"notice info\">\n To know more about response fields refer to <b>api/v1/jobs/{job}</b>\n (<a href=\"#job-management-GETapi-v1-jobs--job_guid-\">Get job information</a>)\n documentation.\n</aside>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  ac:
                    can_assign: true
                    can_delete: true
                    can_download: false
                    can_edit: true
                    can_view: true
                    control_job: true
                    delete_options:
                      action: trash
                  asg_email: tom.jerry@tj.com
                  asg_name: Tom
                  c_email: my.customer@domain.com
                  c_name: 'My Customer'
                  created_at: '2021-02-06T10:21:06.000Z'
                  cus_download: true
                  deleted_at: null
                  due_at: null
                  guid: b7926eb4-6726-4917-abfd-e6eed3476e56
                  has_comment: false
                  is_folder: false
                  is_own: true
                  is_portal: false
                  is_watching: false
                  locked: false
                  more_info:
                    annotations:
                      annot_cnt: 0
                      annot_cnt_plus: false
                    pageCount: 1
                    pages:
                      -
                        bits: 0
                        color: UNKNOWN
                        height: 922
                        mime: image/png
                        width: 1616
                  name: 'A Test File.png'
                  newly_assigned: false
                  parent_guid: f1096786-687e-4e40-87c7-bdb90ef631e7
                  p_email: forward.partner@domain.com
                  path_url: 'https://www.good2gosoftware.com/review/file/b7926eb4-6726-4917-abfd-e6eed3476e56/document/A%20Test%20File.png?version=1'
                  p_name: 'DEF Printer'
                  size: 582817
                  source: in-app
                  status: new
                  type: image/png
                  updated_at: '2021-02-06T10:21:06.000Z'
                  version: 1
                properties:
                  ac:
                    type: object
                    properties:
                      can_assign:
                        type: boolean
                        example: true
                      can_delete:
                        type: boolean
                        example: true
                      can_download:
                        type: boolean
                        example: false
                      can_edit:
                        type: boolean
                        example: true
                      can_view:
                        type: boolean
                        example: true
                      control_job:
                        type: boolean
                        example: true
                      delete_options:
                        type: object
                        properties:
                          action:
                            type: string
                            example: trash
                  asg_email:
                    type: string
                    example: tom.jerry@tj.com
                  asg_name:
                    type: string
                    example: Tom
                  c_email:
                    type: string
                    example: my.customer@domain.com
                  c_name:
                    type: string
                    example: 'My Customer'
                  created_at:
                    type: string
                    example: '2021-02-06T10:21:06.000Z'
                  cus_download:
                    type: boolean
                    example: true
                  deleted_at:
                    type: string
                    example: null
                  due_at:
                    type: string
                    example: null
                  guid:
                    type: string
                    example: b7926eb4-6726-4917-abfd-e6eed3476e56
                  has_comment:
                    type: boolean
                    example: false
                  is_folder:
                    type: boolean
                    example: false
                  is_own:
                    type: boolean
                    example: true
                  is_portal:
                    type: boolean
                    example: false
                  is_watching:
                    type: boolean
                    example: false
                  locked:
                    type: boolean
                    example: false
                  more_info:
                    type: object
                    properties:
                      annotations:
                        type: object
                        properties:
                          annot_cnt:
                            type: integer
                            example: 0
                          annot_cnt_plus:
                            type: boolean
                            example: false
                      pageCount:
                        type: integer
                        example: 1
                      pages:
                        type: array
                        example:
                          -
                            bits: 0
                            color: UNKNOWN
                            height: 922
                            mime: image/png
                            width: 1616
                        items:
                          type: object
                          properties:
                            bits:
                              type: integer
                              example: 0
                            color:
                              type: string
                              example: UNKNOWN
                            height:
                              type: integer
                              example: 922
                            mime:
                              type: string
                              example: image/png
                            width:
                              type: integer
                              example: 1616
                  name:
                    type: string
                    example: 'A Test File.png'
                  newly_assigned:
                    type: boolean
                    example: false
                  parent_guid:
                    type: string
                    example: f1096786-687e-4e40-87c7-bdb90ef631e7
                  p_email:
                    type: string
                    example: forward.partner@domain.com
                  path_url:
                    type: string
                    example: 'https://www.good2gosoftware.com/review/file/b7926eb4-6726-4917-abfd-e6eed3476e56/document/A%20Test%20File.png?version=1'
                  p_name:
                    type: string
                    example: 'DEF Printer'
                  size:
                    type: integer
                    example: 582817
                  source:
                    type: string
                    example: in-app
                  status:
                    type: string
                    example: new
                  type:
                    type: string
                    example: image/png
                  updated_at:
                    type: string
                    example: '2021-02-06T10:21:06.000Z'
                  version:
                    type: integer
                    example: 1
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    message: 'Resource not found'
                    status_code: 404
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                        example: 'Resource not found'
                      status_code:
                        type: integer
                        example: 404
      tags:
        - 'Job management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                alt_text:
                  type: string
                  description: 'Alternative text to describe the file or folder. Must not be greater than 255 characters.'
                  example: 'This is test job. MIS order #12345.'
                c_email:
                  type: string
                  description: 'Customer email, if any. If the email is not found then it is added to customer records for future reference. Must be a valid email address.'
                  example: noemy58@example.net
                cus_download:
                  type: boolean
                  description: 'Enable or disable download of file by customer.'
                  example: false
                due_at:
                  type: string
                  description: 'The due date and time of the job. Must be a valid date in the format <code>Y-m-d\TH:i:s.v\Z</code>.'
                  example: '2025-04-12T04:53:58.000Z'
                is_folder:
                  type: boolean
                  description: "Whether the job is file or folder. This can be set only during job creation. Once set, it can't be changed later, e.g. during job update. For folder set it to true; for file set it to false. Refer to job upload method for creating file."
                  example: true
                  enum:
                    - '1'
                is_portal:
                  type: boolean
                  description: 'Whether the folder is defined as portal or not. If folder is defined as portal then order can be created inside the portal through portal link.'
                  example: false
                label:
                  type: string
                  description: 'Assign one of the user defined label. This field is very useful for defining internal workflow state. Must not be greater than 64 characters.'
                  example: 'Send for review'
                name:
                  type: string
                  description: 'The name of the job. It is case insensitive. Must not be greater than 255 characters.'
                  example: '10 Pack Art Side Label - 10mg proof.pdf'
                p_email:
                  type: string
                  description: 'Partner email, if any. If the email is not found then it is added to settings for future reference. Must be a valid email address.'
                  example: wwelch@example.org
                parent_guid:
                  type: string
                  description: 'The parent folder GUID or null for Desktop folder. Must be a valid UUID.'
                  example: 91eb4b73-bb57-32db-a8dc-3f36edc77fb0
                show_job_spec:
                  type: boolean
                  description: 'Show or hide job specification data to customer.'
                  example: true
                show_preflight:
                  type: boolean
                  description: 'Show or hide preflight summary data to customer.'
                  example: false
                status:
                  type: string
                  description: "The status of the job. Valid values are [ new, approved, rejected, expired ]. There are two internal status [ pending, processing ] related to workflow which can't be changed or assigned."
                  example: approved
                  enum:
                    - approved
                    - change-requested
                    - done
                    - expired
                    - new
                    - pending
                    - processing
                    - rejected
                type:
                  type: string
                  description: 'The mime data type of the job. Must not be greater than 255 characters.'
                  example: application/pdf
              required:
                - is_folder
                - name
  '/api/v1/jobs/{job_guid}':
    get:
      summary: 'Get job information'
      operationId: getJobInformation
      description: "Get information about the job identified by given GUID.\n\nThe return JSON provides all the information about a given job. Few properties\nworth to mention here are:\n<ol>\n <li>Status of the job,</li>\n <li>To whom the job being assigned,</li>\n <li>The customer of the job,</li>\n <li>Any comments added to the job by print buyer,</li>\n <li>The size of the job,</li>\n <li>File mime type,</li>\n <li>The current job version,</li>\n <li>Also it provides some more information about given job type (pdf, image etc.).</li>\n</ol>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  ac:
                    can_assign: true
                    can_delete: true
                    can_download: false
                    can_edit: true
                    can_view: true
                    control_job: true
                    delete_options:
                      action: trash
                  asg_email: tom.jerry@tj.com
                  asg_name: Tom
                  c_email: my.customer@domain.com
                  c_name: 'My Customer'
                  created_at: '2021-02-06T10:21:06.000Z'
                  cus_download: true
                  deleted_at: null
                  due_at: null
                  guid: b7926eb4-6726-4917-abfd-e6eed3476e56
                  has_comment: false
                  is_folder: false
                  is_own: true
                  is_portal: false
                  is_watching: false
                  locked: false
                  more_info:
                    annotations:
                      annot_cnt: 0
                      annot_cnt_plus: false
                    pageCount: 1
                    pages:
                      -
                        bits: 0
                        color: UNKNOWN
                        height: 922
                        mime: image/png
                        width: 1616
                  name: 'A Test File.png'
                  newly_assigned: false
                  parent_guid: f1096786-687e-4e40-87c7-bdb90ef631e7
                  p_email: forward.partner@domain.com
                  path_url: 'https://www.good2gosoftware.com/review/file/b7926eb4-6726-4917-abfd-e6eed3476e56/document/A%20Test%20File.png?version=1'
                  p_name: 'DEF Printer'
                  size: 582817
                  source: in-app
                  status: new
                  type: image/png
                  updated_at: '2021-02-06T10:21:06.000Z'
                  version: 1
                properties:
                  ac:
                    type: object
                    properties:
                      can_assign:
                        type: boolean
                        example: true
                      can_delete:
                        type: boolean
                        example: true
                      can_download:
                        type: boolean
                        example: false
                      can_edit:
                        type: boolean
                        example: true
                      can_view:
                        type: boolean
                        example: true
                      control_job:
                        type: boolean
                        example: true
                      delete_options:
                        type: object
                        properties:
                          action:
                            type: string
                            example: trash
                  asg_email:
                    type: string
                    example: tom.jerry@tj.com
                    description: 'The email of user to whom this job has been assigned.'
                  asg_name:
                    type: string
                    example: Tom
                  c_email:
                    type: string
                    example: my.customer@domain.com
                    description: 'Customer email address.'
                  c_name:
                    type: string
                    example: 'My Customer'
                  created_at:
                    type: string
                    example: '2021-02-06T10:21:06.000Z'
                    description: 'Job creation date.'
                  cus_download:
                    type: boolean
                    example: true
                    description: "Whether print buyer will be allowed to download\n     the file or not. Default value is 'false'."
                  deleted_at:
                    type: string
                    example: null
                    description: "When the job was moved to trash. Default value is\n     'null'."
                  due_at:
                    type: string
                    example: null
                    description: "Due date of the job to complete. Default value is 'null'."
                  guid:
                    type: string
                    example: b7926eb4-6726-4917-abfd-e6eed3476e56
                    description: 'GUID of this job.'
                  has_comment:
                    type: boolean
                    example: false
                    description: "If a comment has been made on the job by\n     print buyer or partner or assignee. Default value is 'false'."
                  is_folder:
                    type: boolean
                    example: false
                    description: 'If this job is a file or folder.'
                  is_own:
                    type: boolean
                    example: true
                    description: "If the current user own this job or not. Default\n     value is 'true'."
                  is_portal:
                    type: boolean
                    example: false
                    description: 'If this folder is used for job portal.'
                  is_watching:
                    type: boolean
                    example: false
                  locked:
                    type: boolean
                    example: false
                    description: "If this job (applicable for file only) is locked\n     or not."
                  more_info:
                    type: object
                    properties:
                      annotations:
                        type: object
                        properties:
                          annot_cnt:
                            type: integer
                            example: 0
                          annot_cnt_plus:
                            type: boolean
                            example: false
                      pageCount:
                        type: integer
                        example: 1
                      pages:
                        type: array
                        example:
                          -
                            bits: 0
                            color: UNKNOWN
                            height: 922
                            mime: image/png
                            width: 1616
                        items:
                          type: object
                          properties:
                            bits:
                              type: integer
                              example: 0
                            color:
                              type: string
                              example: UNKNOWN
                            height:
                              type: integer
                              example: 922
                            mime:
                              type: string
                              example: image/png
                            width:
                              type: integer
                              example: 1616
                  name:
                    type: string
                    example: 'A Test File.png'
                    description: 'The name of the job.'
                  newly_assigned:
                    type: boolean
                    example: false
                    description: "If the job is recently assigned to a user\n     and no update found after assignment."
                  parent_guid:
                    type: string
                    example: f1096786-687e-4e40-87c7-bdb90ef631e7
                    description: "The GUID of the parent folder, if any. Default value\n     is 'null'."
                  p_email:
                    type: string
                    example: forward.partner@domain.com
                    description: 'The partner email for job forward.'
                  path_url:
                    type: string
                    example: 'https://www.good2gosoftware.com/review/file/b7926eb4-6726-4917-abfd-e6eed3476e56/document/A%20Test%20File.png?version=1'
                    description: "The url path to view the file. Return <i>null</i> in case\n     of folder."
                  p_name:
                    type: string
                    example: 'DEF Printer'
                  size:
                    type: integer
                    example: 582817
                    description: "The size of the original file associated with the job.\n     Default value is 0 (zero). Especially, in case folder it is always 0 (zero)."
                  source:
                    type: string
                    example: in-app
                  status:
                    type: string
                    example: new
                    description: "The status of the job. Valid values are [ new,\n     approved, rejected, pending, processing, expired ]. Default value is 'new'."
                  type:
                    type: string
                    example: image/png
                    description: "The mime-type of the document associated with the job. For\n     folder it value is <i>null</i>."
                  updated_at:
                    type: string
                    example: '2021-02-06T10:21:06.000Z'
                    description: 'The last updated date and time.'
                  version:
                    type: integer
                    example: 1
                    description: "The current version of the document. Each time a new\n     document is uploaded the version is incremented. Default value is 1 (one)."
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    message: 'Resource not found.'
                    status_code: 404
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                        example: 'Resource not found.'
                      status_code:
                        type: integer
                        example: 404
      tags:
        - 'Job management'
    put:
      summary: 'Update an existing job'
      operationId: updateAnExistingJob
      description: "<aside class=\"notice info\">\n  To know more about response fields refer to <b>api/v1/jobs/{job}</b>\n  (Get job information) documentation.\n</aside>\n\n<aside class=\"notice info\">\n Customer or partner information provided, especially name and email, are\n stored in customer records. If same email exists but name is changed then\n same is updated in the records.\n</aside>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  ac:
                    can_assign: true
                    can_delete: true
                    can_download: false
                    can_edit: true
                    can_view: true
                    control_job: true
                    delete_options:
                      action: trash
                  asg_email: tom.jerry@tj.com
                  asg_name: Tom
                  c_email: my.customer@domain.com
                  c_name: 'My Customer'
                  created_at: '2021-02-06T10:21:06.000Z'
                  cus_download: true
                  deleted_at: null
                  due_at: null
                  guid: b7926eb4-6726-4917-abfd-e6eed3476e56
                  has_comment: false
                  is_folder: false
                  is_own: true
                  is_portal: false
                  is_watching: false
                  locked: false
                  more_info:
                    annotations:
                      annot_cnt: 0
                      annot_cnt_plus: false
                    pageCount: 1
                    pages:
                      -
                        bits: 0
                        color: UNKNOWN
                        height: 922
                        mime: image/png
                        width: 1616
                  name: 'A Test File.png'
                  newly_assigned: false
                  parent_guid: f1096786-687e-4e40-87c7-bdb90ef631e7
                  p_email: forward.partner@domain.com
                  path_url: 'https://www.good2gosoftware.com/review/file/b7926eb4-6726-4917-abfd-e6eed3476e56/document/A%20Test%20File.png?version=1'
                  p_name: 'DEF Printer'
                  size: 582817
                  source: in-app
                  status: new
                  type: image/png
                  updated_at: '2021-02-06T10:21:06.000Z'
                  version: 1
                properties:
                  ac:
                    type: object
                    properties:
                      can_assign:
                        type: boolean
                        example: true
                      can_delete:
                        type: boolean
                        example: true
                      can_download:
                        type: boolean
                        example: false
                      can_edit:
                        type: boolean
                        example: true
                      can_view:
                        type: boolean
                        example: true
                      control_job:
                        type: boolean
                        example: true
                      delete_options:
                        type: object
                        properties:
                          action:
                            type: string
                            example: trash
                  asg_email:
                    type: string
                    example: tom.jerry@tj.com
                  asg_name:
                    type: string
                    example: Tom
                  c_email:
                    type: string
                    example: my.customer@domain.com
                  c_name:
                    type: string
                    example: 'My Customer'
                  created_at:
                    type: string
                    example: '2021-02-06T10:21:06.000Z'
                  cus_download:
                    type: boolean
                    example: true
                  deleted_at:
                    type: string
                    example: null
                  due_at:
                    type: string
                    example: null
                  guid:
                    type: string
                    example: b7926eb4-6726-4917-abfd-e6eed3476e56
                  has_comment:
                    type: boolean
                    example: false
                  is_folder:
                    type: boolean
                    example: false
                  is_own:
                    type: boolean
                    example: true
                  is_portal:
                    type: boolean
                    example: false
                  is_watching:
                    type: boolean
                    example: false
                  locked:
                    type: boolean
                    example: false
                  more_info:
                    type: object
                    properties:
                      annotations:
                        type: object
                        properties:
                          annot_cnt:
                            type: integer
                            example: 0
                          annot_cnt_plus:
                            type: boolean
                            example: false
                      pageCount:
                        type: integer
                        example: 1
                      pages:
                        type: array
                        example:
                          -
                            bits: 0
                            color: UNKNOWN
                            height: 922
                            mime: image/png
                            width: 1616
                        items:
                          type: object
                          properties:
                            bits:
                              type: integer
                              example: 0
                            color:
                              type: string
                              example: UNKNOWN
                            height:
                              type: integer
                              example: 922
                            mime:
                              type: string
                              example: image/png
                            width:
                              type: integer
                              example: 1616
                  name:
                    type: string
                    example: 'A Test File.png'
                  newly_assigned:
                    type: boolean
                    example: false
                  parent_guid:
                    type: string
                    example: f1096786-687e-4e40-87c7-bdb90ef631e7
                  p_email:
                    type: string
                    example: forward.partner@domain.com
                  path_url:
                    type: string
                    example: 'https://www.good2gosoftware.com/review/file/b7926eb4-6726-4917-abfd-e6eed3476e56/document/A%20Test%20File.png?version=1'
                  p_name:
                    type: string
                    example: 'DEF Printer'
                  size:
                    type: integer
                    example: 582817
                  source:
                    type: string
                    example: in-app
                  status:
                    type: string
                    example: new
                  type:
                    type: string
                    example: image/png
                  updated_at:
                    type: string
                    example: '2021-02-06T10:21:06.000Z'
                  version:
                    type: integer
                    example: 1
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    message: 'Resource not found'
                    status_code: 404
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                        example: 'Resource not found'
                      status_code:
                        type: integer
                        example: 404
      tags:
        - 'Job management'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                alt_text:
                  type: string
                  description: 'Alternative text to describe the file or folder. Must not be greater than 255 characters.'
                  example: 'This is test job. MIS order #12345.'
                c_email:
                  type: string
                  description: 'Customer email, if any. If the email is not found then it is added to customer records for future reference. Must be a valid email address.'
                  example: yundt.donald@example.net
                cus_download:
                  type: boolean
                  description: 'Enable or disable download of file by customer.'
                  example: false
                due_at:
                  type: string
                  description: 'The due date and time of the job. Must be a valid date in the format <code>Y-m-d\TH:i:s.v\Z</code>.'
                  example: '2025-04-12T04:53:58.000Z'
                is_folder:
                  type: boolean
                  description: "Whether the job is file or folder. This can be set only during job creation. Once set, it can't be changed later, e.g. during job update. For folder set it to true; for file set it to false. Refer to job upload method for creating file."
                  example: true
                is_portal:
                  type: boolean
                  description: 'Whether the folder is defined as portal or not. If folder is defined as portal then order can be created inside the portal through portal link.'
                  example: false
                label:
                  type: string
                  description: 'Assign one of the user defined label. This field is very useful for defining internal workflow state. Must not be greater than 64 characters.'
                  example: 'Send for review'
                name:
                  type: string
                  description: 'The name of the job. It is case insensitive. Must not be greater than 255 characters.'
                  example: '10 Pack Art Side Label - 10mg proof.pdf'
                p_email:
                  type: string
                  description: 'Partner email, if any. If the email is not found then it is added to settings for future reference. Must be a valid email address.'
                  example: angelita64@example.net
                parent_guid:
                  type: string
                  description: 'The parent folder GUID or null for Desktop folder. Must be a valid UUID.'
                  example: 67b8d888-8a08-38b2-ae73-4089edcefc72
                show_job_spec:
                  type: boolean
                  description: 'Show or hide job specification data to customer.'
                  example: true
                show_preflight:
                  type: boolean
                  description: 'Show or hide preflight summary data to customer.'
                  example: false
                status:
                  type: string
                  description: "The status of the job. Valid values are [ new, approved, rejected, expired ]. There are two internal status [ pending, processing ] related to workflow which can't be changed or assigned."
                  example: approved
                  enum:
                    - approved
                    - change-requested
                    - done
                    - expired
                    - new
                    - pending
                    - processing
                    - rejected
                type:
                  type: string
                  description: 'The mime data type of the job. Must not be greater than 255 characters.'
                  example: application/pdf
    delete:
      summary: 'Delete an existing job'
      operationId: deleteAnExistingJob
      description: "If the trash-on-delete is enabled in the user setting then a live job is\nmoved to trash. If trash-on-delete is disabled in the user setting then job\nis permanently deleted.\n\nIf the delete method is called for a trashed job then it is permanently\ndeleted."
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example: {  }
                properties: {  }
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    message: 'Resource not found'
                    status_code: 404
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                        example: 'Resource not found'
                      status_code:
                        type: integer
                        example: 404
      tags:
        - 'Job management'
    parameters:
      -
        in: path
        name: job_guid
        description: "The GUID of the job. This can be derived from the\n     list of jobs returned from api <code>api/v1/jobs</code> (Get job information)."
        example: b507769f-f7ec-40d2-bd29-f3825adf83ca.
        required: true
        schema:
          type: string
  '/api/v1/jobs/{job_guid}/customer':
    get:
      summary: "Get job's customer information"
      operationId: getJobsCustomerInformation
      description: "This returns information available about the customer associated with this\njob.\n\n<aside class=\"notice info\">\n  The customer information is defined in the <i>customer records</i> page.\n</aside>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  address: '3456, N Park Meadow Way'
                  alt_phone: '1234567890'
                  c_email: test.good2go@gmail.com
                  c_name: 'Test Good2Go'
                  city: 'New York'
                  company: Good2Go
                  created_at: '2020-10-23T16:53:35.000Z'
                  group: 'Sales Team'
                  id: 2
                  identity: '0123456789'
                  phone: '9876543210'
                  state: NY
                  updated_at: '2021-02-10T11:20:44.000Z'
                  valid_email: 1
                  zip_code: '12345'
                properties:
                  address:
                    type: string
                    example: '3456, N Park Meadow Way'
                    description: "Customer's address."
                  alt_phone:
                    type: string
                    example: '1234567890'
                    description: "Customer's alternative phone number."
                  c_email:
                    type: string
                    example: test.good2go@gmail.com
                    description: "Customer's email address."
                  c_name:
                    type: string
                    example: 'Test Good2Go'
                    description: "Customer's name."
                  city:
                    type: string
                    example: 'New York'
                    description: "Customer's city in the address."
                  company:
                    type: string
                    example: Good2Go
                    description: "Customer's company name."
                  created_at:
                    type: string
                    example: '2020-10-23T16:53:35.000Z'
                  group:
                    type: string
                    example: 'Sales Team'
                    description: 'Specific group assigned to customer.'
                  id:
                    type: integer
                    example: 2
                  identity:
                    type: string
                    example: '0123456789'
                    description: "Identity of the customer (reference to\n     other database/record), if any."
                  phone:
                    type: string
                    example: '9876543210'
                    description: "Customer's phone number."
                  state:
                    type: string
                    example: NY
                    description: "Customer's city in the address."
                  updated_at:
                    type: string
                    example: '2021-02-10T11:20:44.000Z'
                  valid_email:
                    type: integer
                    example: 1
                  zip_code:
                    type: string
                    example: '12345'
                    description: "Customer's zip code in the address."
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    message: 'Customer email not defined.'
                    status_code: 404
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                        example: 'Customer email not defined.'
                      status_code:
                        type: integer
                        example: 404
      tags:
        - 'Job management'
    put:
      summary: "Update job's customer"
      operationId: updateJobsCustomer
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  address: '3456, N Park Meadow Way'
                  alt_phone: '1234567890'
                  c_email: test.good2go@gmail.com
                  c_name: 'Test Good2Go'
                  city: 'New York'
                  company: Good2Go
                  created_at: '2020-10-23T16:53:35.000Z'
                  group: 'Sales Team'
                  id: 2
                  identity: '0123456789'
                  phone: '9876543210'
                  state: NY
                  updated_at: '2021-02-10T11:20:44.000Z'
                  valid_email: 1
                  zip_code: '12345'
                properties:
                  address:
                    type: string
                    example: '3456, N Park Meadow Way'
                    description: "Partner's address."
                  alt_phone:
                    type: string
                    example: '1234567890'
                    description: "Partner's alternative phone number."
                  c_email:
                    type: string
                    example: test.good2go@gmail.com
                    description: "Partner's email address."
                  c_name:
                    type: string
                    example: 'Test Good2Go'
                    description: "Partner's name."
                  city:
                    type: string
                    example: 'New York'
                    description: "Partner's city in the address."
                  company:
                    type: string
                    example: Good2Go
                    description: "Partner's company name."
                  created_at:
                    type: string
                    example: '2020-10-23T16:53:35.000Z'
                  group:
                    type: string
                    example: 'Sales Team'
                    description: 'Specific group assigned to customer.'
                  id:
                    type: integer
                    example: 2
                  identity:
                    type: string
                    example: '0123456789'
                    description: "Identity of the customer (reference to\n     other database/record), if any."
                  phone:
                    type: string
                    example: '9876543210'
                    description: "Partner's phone number."
                  state:
                    type: string
                    example: NY
                    description: "Partner's city in the address."
                  updated_at:
                    type: string
                    example: '2021-02-10T11:20:44.000Z'
                  valid_email:
                    type: integer
                    example: 1
                  zip_code:
                    type: string
                    example: '12345'
                    description: "Partner's zip code in the address."
      tags:
        - 'Job management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                address:
                  type: string
                  description: 'The customer or partner mailing address.'
                  example: '40 North Canal Street, Shickshinny, PA 12345, United States'
                alt_phone:
                  type: string
                  description: 'Alternative phone number of customer.'
                  example: 123-456-7890
                c_email:
                  type: string
                  description: 'Email of customer. Must be a valid email address.'
                  example: fermin85@example.com
                c_name:
                  type: string
                  description: 'Name of customer.'
                  example: 'Tom Jerry'
                city:
                  type: string
                  description: 'City in mailing address.'
                  example: Shickshinny
                company:
                  type: string
                  description: 'Company name.'
                  example: 'Good2Go Software'
                group:
                  type: string
                  description: 'Specific group assigned to customer. Must not be greater than 64 characters.'
                  example: abc-company
                identity:
                  type: string
                  description: 'Identity of the customer (reference to other database/record), if any. Must not be greater than 64 characters.'
                  example: acf093ed
                phone:
                  type: string
                  description: 'Phone number.'
                  example: 234-567-8901
                state:
                  type: string
                  description: 'State in mailing address.'
                  example: PA
                zip_code:
                  type: string
                  description: 'Zip code or PIN of mailing address.'
                  example: '12345'
              required:
                - c_email
    delete:
      summary: "Unassign job's customer"
      operationId: unassignJobsCustomer
      description: 'Remove job customer associated with given job.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example: {  }
                properties: {  }
      tags:
        - 'Job management'
    parameters:
      -
        in: path
        name: job_guid
        description: "The GUID of the job. This can be derived from the\n     list of jobs returned from api <code>api/v1/jobs</code> (Get job information)."
        example: b507769f-f7ec-40d2-bd29-f3825adf83ca.
        required: true
        schema:
          type: string
  '/api/v1/jobs/{job_guid}/duplicate':
    post:
      summary: 'Duplicate document'
      operationId: duplicateDocument
      description: "It is often useful to be able to create a new document using a previously\nuploaded file. This avoid repeating the upload process.\n\nThis will copy the document and their latest preflight and image metadata,\n(and annotation for PDF files, if any).\n\n<aside class=\"notice info\">\n  Also, it allows to apply certain predefined action on copied PDF file.\n</aside>\n<aside class=\"notice info\">\n  Duplicate method is only available for file (not for folder).\n</aside>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  ac:
                    can_assign: true
                    can_delete: true
                    can_download: false
                    can_edit: true
                    can_view: true
                    control_job: true
                    delete_options:
                      action: trash
                  asg_email: tom.jerry@tj.com
                  asg_name: Tom
                  c_email: my.customer@domain.com
                  c_name: 'My Customer'
                  created_at: '2021-02-06T10:21:06.000Z'
                  cus_download: true
                  deleted_at: null
                  due_at: null
                  guid: b7926eb4-6726-4917-abfd-e6eed3476e56
                  has_comment: false
                  is_folder: false
                  is_own: true
                  is_portal: false
                  is_watching: false
                  locked: false
                  more_info:
                    annotations:
                      annot_cnt: 0
                      annot_cnt_plus: false
                    pageCount: 1
                    pages:
                      -
                        bits: 0
                        color: UNKNOWN
                        height: 922
                        mime: image/png
                        width: 1616
                  name: 'A Test File.png'
                  newly_assigned: false
                  parent_guid: f1096786-687e-4e40-87c7-bdb90ef631e7
                  p_email: forward.partner@domain.com
                  path_url: 'https://www.good2gosoftware.com/review/file/b7926eb4-6726-4917-abfd-e6eed3476e56/document/A%20Test%20File.png?version=1'
                  p_name: 'DEF Printer'
                  size: 582817
                  source: in-app
                  status: new
                  type: image/png
                  updated_at: '2021-02-06T10:21:06.000Z'
                  version: 1
                properties:
                  ac:
                    type: object
                    properties:
                      can_assign:
                        type: boolean
                        example: true
                      can_delete:
                        type: boolean
                        example: true
                      can_download:
                        type: boolean
                        example: false
                      can_edit:
                        type: boolean
                        example: true
                      can_view:
                        type: boolean
                        example: true
                      control_job:
                        type: boolean
                        example: true
                      delete_options:
                        type: object
                        properties:
                          action:
                            type: string
                            example: trash
                  asg_email:
                    type: string
                    example: tom.jerry@tj.com
                  asg_name:
                    type: string
                    example: Tom
                  c_email:
                    type: string
                    example: my.customer@domain.com
                  c_name:
                    type: string
                    example: 'My Customer'
                  created_at:
                    type: string
                    example: '2021-02-06T10:21:06.000Z'
                  cus_download:
                    type: boolean
                    example: true
                  deleted_at:
                    type: string
                    example: null
                  due_at:
                    type: string
                    example: null
                  guid:
                    type: string
                    example: b7926eb4-6726-4917-abfd-e6eed3476e56
                  has_comment:
                    type: boolean
                    example: false
                  is_folder:
                    type: boolean
                    example: false
                  is_own:
                    type: boolean
                    example: true
                  is_portal:
                    type: boolean
                    example: false
                  is_watching:
                    type: boolean
                    example: false
                  locked:
                    type: boolean
                    example: false
                  more_info:
                    type: object
                    properties:
                      annotations:
                        type: object
                        properties:
                          annot_cnt:
                            type: integer
                            example: 0
                          annot_cnt_plus:
                            type: boolean
                            example: false
                      pageCount:
                        type: integer
                        example: 1
                      pages:
                        type: array
                        example:
                          -
                            bits: 0
                            color: UNKNOWN
                            height: 922
                            mime: image/png
                            width: 1616
                        items:
                          type: object
                          properties:
                            bits:
                              type: integer
                              example: 0
                            color:
                              type: string
                              example: UNKNOWN
                            height:
                              type: integer
                              example: 922
                            mime:
                              type: string
                              example: image/png
                            width:
                              type: integer
                              example: 1616
                  name:
                    type: string
                    example: 'A Test File.png'
                  newly_assigned:
                    type: boolean
                    example: false
                  parent_guid:
                    type: string
                    example: f1096786-687e-4e40-87c7-bdb90ef631e7
                  p_email:
                    type: string
                    example: forward.partner@domain.com
                  path_url:
                    type: string
                    example: 'https://www.good2gosoftware.com/review/file/b7926eb4-6726-4917-abfd-e6eed3476e56/document/A%20Test%20File.png?version=1'
                  p_name:
                    type: string
                    example: 'DEF Printer'
                  size:
                    type: integer
                    example: 582817
                  source:
                    type: string
                    example: in-app
                  status:
                    type: string
                    example: new
                  type:
                    type: string
                    example: image/png
                  updated_at:
                    type: string
                    example: '2021-02-06T10:21:06.000Z'
                  version:
                    type: integer
                    example: 1
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    message: 'Resource not found'
                    status_code: 404
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                        example: 'Resource not found'
                      status_code:
                        type: integer
                        example: 404
      tags:
        - 'Job management'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                c_email:
                  type: string
                  description: 'Customer email, if any. If the email is not found then it is added to settings for future reference. Must be a valid email address.'
                  example: vicky.waters@example.com
    parameters:
      -
        in: path
        name: job_guid
        description: "The guid of the job. This can be derived from the\n     list of jobs returned from api 'api/v1/jobs'."
        example: b507769f-f7ec-40d2-bd29-f3825adf83ca
        required: true
        schema:
          type: string
  '/api/v1/jobs/{job_guid}/ownership':
    get:
      summary: 'Get job owner information'
      operationId: getJobOwnerInformation
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n     \"guid\": \"f6ac15ca-e4fa-4e1f-bb94-088ec04d7dab\",\n     \"owner\": {\n         \"email\": \"abc.pqr@mail.com\",\n         \"full_name\": \"Abc Pqr\",\n         ...\n     },\n     \"parent\": {\n         \"c_email\": \"customer@mail.com\"\n         \"guid\": \"292fb01f-23ad-4d42-b126-251bd95d2637\",\n         \"name\": \"Test folder\",\n         ...\n     },\n     \"parent_guid\": \"292fb01f-23ad-4d42-b126-251bd95d2637\"\n}"
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    message: 'Resource not found'
                    status_code: 404
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                        example: 'Resource not found'
                      status_code:
                        type: integer
                        example: 404
      tags:
        - 'Job management'
    post:
      summary: 'Update job owner and parent folder.'
      operationId: updateJobOwnerAndParentFolder
      description: "This API is especially useful for moving a job either from one folder to\nanother or from one user to another, or both.\n\n<aside class=\"warning\">\n When moving job from one user to another, the source and target user shall be\n part of same team account. It is not possible to move job from/to arbitrary\n users.\n</aside>\n\n<aside class=\"notice info\">\n When moving job from one user to another, the target user is determined from\n the authentication.\n</aside>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  ac:
                    can_assign: true
                    can_delete: true
                    can_download: false
                    can_edit: true
                    can_view: true
                    control_job: true
                    delete_options:
                      action: trash
                  asg_email: tom.jerry@tj.com
                  asg_name: Tom
                  c_email: my.customer@domain.com
                  c_name: 'My Customer'
                  created_at: '2021-02-06T10:21:06.000Z'
                  cus_download: true
                  deleted_at: null
                  due_at: null
                  guid: b7926eb4-6726-4917-abfd-e6eed3476e56
                  has_comment: false
                  is_folder: false
                  is_own: true
                  is_portal: false
                  is_watching: false
                  locked: false
                  more_info:
                    annotations:
                      annot_cnt: 0
                      annot_cnt_plus: false
                    pageCount: 1
                    pages:
                      -
                        bits: 0
                        color: UNKNOWN
                        height: 922
                        mime: image/png
                        width: 1616
                  name: 'A Test File.png'
                  newly_assigned: false
                  parent_guid: f1096786-687e-4e40-87c7-bdb90ef631e7
                  p_email: forward.partner@domain.com
                  path_url: 'https://www.good2gosoftware.com/review/file/b7926eb4-6726-4917-abfd-e6eed3476e56/document/A%20Test%20File.png?version=1'
                  p_name: 'DEF Printer'
                  size: 582817
                  source: in-app
                  status: new
                  type: image/png
                  updated_at: '2021-02-06T10:21:06.000Z'
                  version: 1
                properties:
                  ac:
                    type: object
                    properties:
                      can_assign:
                        type: boolean
                        example: true
                      can_delete:
                        type: boolean
                        example: true
                      can_download:
                        type: boolean
                        example: false
                      can_edit:
                        type: boolean
                        example: true
                      can_view:
                        type: boolean
                        example: true
                      control_job:
                        type: boolean
                        example: true
                      delete_options:
                        type: object
                        properties:
                          action:
                            type: string
                            example: trash
                  asg_email:
                    type: string
                    example: tom.jerry@tj.com
                  asg_name:
                    type: string
                    example: Tom
                  c_email:
                    type: string
                    example: my.customer@domain.com
                  c_name:
                    type: string
                    example: 'My Customer'
                  created_at:
                    type: string
                    example: '2021-02-06T10:21:06.000Z'
                  cus_download:
                    type: boolean
                    example: true
                  deleted_at:
                    type: string
                    example: null
                  due_at:
                    type: string
                    example: null
                  guid:
                    type: string
                    example: b7926eb4-6726-4917-abfd-e6eed3476e56
                  has_comment:
                    type: boolean
                    example: false
                  is_folder:
                    type: boolean
                    example: false
                  is_own:
                    type: boolean
                    example: true
                  is_portal:
                    type: boolean
                    example: false
                  is_watching:
                    type: boolean
                    example: false
                  locked:
                    type: boolean
                    example: false
                  more_info:
                    type: object
                    properties:
                      annotations:
                        type: object
                        properties:
                          annot_cnt:
                            type: integer
                            example: 0
                          annot_cnt_plus:
                            type: boolean
                            example: false
                      pageCount:
                        type: integer
                        example: 1
                      pages:
                        type: array
                        example:
                          -
                            bits: 0
                            color: UNKNOWN
                            height: 922
                            mime: image/png
                            width: 1616
                        items:
                          type: object
                          properties:
                            bits:
                              type: integer
                              example: 0
                            color:
                              type: string
                              example: UNKNOWN
                            height:
                              type: integer
                              example: 922
                            mime:
                              type: string
                              example: image/png
                            width:
                              type: integer
                              example: 1616
                  name:
                    type: string
                    example: 'A Test File.png'
                  newly_assigned:
                    type: boolean
                    example: false
                  parent_guid:
                    type: string
                    example: f1096786-687e-4e40-87c7-bdb90ef631e7
                  p_email:
                    type: string
                    example: forward.partner@domain.com
                  path_url:
                    type: string
                    example: 'https://www.good2gosoftware.com/review/file/b7926eb4-6726-4917-abfd-e6eed3476e56/document/A%20Test%20File.png?version=1'
                  p_name:
                    type: string
                    example: 'DEF Printer'
                  size:
                    type: integer
                    example: 582817
                  source:
                    type: string
                    example: in-app
                  status:
                    type: string
                    example: new
                  type:
                    type: string
                    example: image/png
                  updated_at:
                    type: string
                    example: '2021-02-06T10:21:06.000Z'
                  version:
                    type: integer
                    example: 1
      tags:
        - 'Job management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                parent_guid:
                  type: string
                  description: "The parent folder GUID or null for\n     Desktop folder."
                  example: neque
              required:
                - parent_guid
    parameters:
      -
        in: path
        name: job_guid
        description: "The GUID of the job. This can be derived from the\n     list of jobs returned from api <code>api/v1/jobs</code> (Get job information)."
        example: 03a71fd0-cc06-4432-bfef-44baa7a1d7c6.
        required: true
        schema:
          type: string
  '/api/v1/jobs/{job_guid}/partner':
    get:
      summary: "Get job's partner information"
      operationId: getJobsPartnerInformation
      description: "This returns information available about the partner associated with this\njob.\n\n<aside class=\"notice info\">\n  The partner information is defined in the <i>customer records</i> page.\n</aside>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  address: '3456, N Park Meadow Way'
                  alt_phone: '1234567890'
                  c_email: test.good2go@gmail.com
                  c_name: 'Test Good2Go'
                  city: 'New York'
                  company: Good2Go
                  created_at: '2020-10-23T16:53:35.000Z'
                  group: 'Sales Team'
                  id: 2
                  identity: '0123456789'
                  phone: '9876543210'
                  state: NY
                  updated_at: '2021-02-10T11:20:44.000Z'
                  valid_email: 1
                  zip_code: '12345'
                properties:
                  address:
                    type: string
                    example: '3456, N Park Meadow Way'
                    description: "Partner's address."
                  alt_phone:
                    type: string
                    example: '1234567890'
                    description: "Partner's alternative phone number."
                  c_email:
                    type: string
                    example: test.good2go@gmail.com
                    description: "Partner's email address."
                  c_name:
                    type: string
                    example: 'Test Good2Go'
                    description: "Partner's name."
                  city:
                    type: string
                    example: 'New York'
                    description: "Partner's city in the address."
                  company:
                    type: string
                    example: Good2Go
                    description: "Partner's company name."
                  created_at:
                    type: string
                    example: '2020-10-23T16:53:35.000Z'
                  group:
                    type: string
                    example: 'Sales Team'
                    description: 'Specific group assigned to customer.'
                  id:
                    type: integer
                    example: 2
                  identity:
                    type: string
                    example: '0123456789'
                    description: "Identity of the customer (reference to\n     other database/record), if any."
                  phone:
                    type: string
                    example: '9876543210'
                    description: "Partner's phone number."
                  state:
                    type: string
                    example: NY
                    description: "Partner's city in the address."
                  updated_at:
                    type: string
                    example: '2021-02-10T11:20:44.000Z'
                  valid_email:
                    type: integer
                    example: 1
                  zip_code:
                    type: string
                    example: '12345'
                    description: "Partner's zip code in the address."
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    message: 'Partner email not defined.'
                    status_code: 404
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                        example: 'Partner email not defined.'
                      status_code:
                        type: integer
                        example: 404
      tags:
        - 'Job management'
    put:
      summary: "Update job's partner"
      operationId: updateJobsPartner
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  address: '3456, N Park Meadow Way'
                  alt_phone: '1234567890'
                  c_email: test.good2go@gmail.com
                  c_name: 'Test Good2Go'
                  city: 'New York'
                  company: Good2Go
                  created_at: '2020-10-23T16:53:35.000Z'
                  group: 'Sales Team'
                  id: 2
                  identity: '0123456789'
                  phone: '9876543210'
                  state: NY
                  updated_at: '2021-02-10T11:20:44.000Z'
                  valid_email: 1
                  zip_code: '12345'
                properties:
                  address:
                    type: string
                    example: '3456, N Park Meadow Way'
                    description: "Partner's address."
                  alt_phone:
                    type: string
                    example: '1234567890'
                    description: "Partner's alternative phone number."
                  c_email:
                    type: string
                    example: test.good2go@gmail.com
                    description: "Partner's email address."
                  c_name:
                    type: string
                    example: 'Test Good2Go'
                    description: "Partner's name."
                  city:
                    type: string
                    example: 'New York'
                    description: "Partner's city in the address."
                  company:
                    type: string
                    example: Good2Go
                    description: "Partner's company name."
                  created_at:
                    type: string
                    example: '2020-10-23T16:53:35.000Z'
                  group:
                    type: string
                    example: 'Sales Team'
                    description: 'Specific group assigned to customer.'
                  id:
                    type: integer
                    example: 2
                  identity:
                    type: string
                    example: '0123456789'
                    description: "Identity of the customer (reference to\n     other database/record), if any."
                  phone:
                    type: string
                    example: '9876543210'
                    description: "Partner's phone number."
                  state:
                    type: string
                    example: NY
                    description: "Partner's city in the address."
                  updated_at:
                    type: string
                    example: '2021-02-10T11:20:44.000Z'
                  valid_email:
                    type: integer
                    example: 1
                  zip_code:
                    type: string
                    example: '12345'
                    description: "Partner's zip code in the address."
      tags:
        - 'Job management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                address:
                  type: string
                  description: 'The customer or partner mailing address.'
                  example: '40 North Canal Street, Shickshinny, PA 12345, United States'
                alt_phone:
                  type: string
                  description: 'Alternative phone number of customer.'
                  example: 123-456-7890
                c_email:
                  type: string
                  description: 'Email of customer. Must be a valid email address.'
                  example: palma55@example.net
                c_name:
                  type: string
                  description: 'Name of customer.'
                  example: 'Tom Jerry'
                city:
                  type: string
                  description: 'City in mailing address.'
                  example: Shickshinny
                company:
                  type: string
                  description: 'Company name.'
                  example: 'Good2Go Software'
                group:
                  type: string
                  description: 'Specific group assigned to customer. Must not be greater than 64 characters.'
                  example: abc-company
                identity:
                  type: string
                  description: 'Identity of the customer (reference to other database/record), if any. Must not be greater than 64 characters.'
                  example: acf093ed
                phone:
                  type: string
                  description: 'Phone number.'
                  example: 234-567-8901
                state:
                  type: string
                  description: 'State in mailing address.'
                  example: PA
                zip_code:
                  type: string
                  description: 'Zip code or PIN of mailing address.'
                  example: '12345'
              required:
                - c_email
    delete:
      summary: "Unassign job's partner"
      operationId: unassignJobsPartner
      description: 'Remove job partner associated with given job.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example: {  }
                properties: {  }
      tags:
        - 'Job management'
    parameters:
      -
        in: path
        name: job_guid
        description: "The GUID of the job. This can be derived from the\n     list of jobs returned from api <code>api/v1/jobs</code> (Get job information)."
        example: b507769f-f7ec-40d2-bd29-f3825adf83ca.
        required: true
        schema:
          type: string
  '/api/v1/jobs/{job_guid}/revision':
    post:
      summary: 'Upload a file revision'
      operationId: uploadAFileRevision
      description: "<aside class=\"notice info\">\n To know more about response fields refer to <b>api/v1/jobs/{job}</b>\n (<a href=\"#job-management-GETapi-v1-jobs--job_guid-\">Get job information</a>)\n documentation.\n</aside>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  ac:
                    can_assign: true
                    can_delete: true
                    can_download: false
                    can_edit: true
                    can_view: true
                    control_job: true
                    delete_options:
                      action: trash
                  asg_email: tom.jerry@tj.com
                  asg_name: Tom
                  c_email: my.customer@domain.com
                  c_name: 'My Customer'
                  created_at: '2021-02-06T10:21:06.000Z'
                  cus_download: true
                  deleted_at: null
                  due_at: null
                  guid: b7926eb4-6726-4917-abfd-e6eed3476e56
                  has_comment: false
                  is_folder: false
                  is_own: true
                  is_portal: false
                  is_watching: false
                  locked: false
                  more_info:
                    annotations:
                      annot_cnt: 0
                      annot_cnt_plus: false
                    pageCount: 1
                    pages:
                      -
                        bits: 0
                        color: UNKNOWN
                        height: 922
                        mime: image/png
                        width: 1616
                  name: 'A Test File.png'
                  newly_assigned: false
                  parent_guid: f1096786-687e-4e40-87c7-bdb90ef631e7
                  p_email: forward.partner@domain.com
                  path_url: 'https://www.good2gosoftware.com/review/file/b7926eb4-6726-4917-abfd-e6eed3476e56/document/A%20Test%20File.png?version=1'
                  p_name: 'DEF Printer'
                  size: 582817
                  source: in-app
                  status: new
                  type: image/png
                  updated_at: '2021-02-06T10:21:06.000Z'
                  version: 1
                properties:
                  ac:
                    type: object
                    properties:
                      can_assign:
                        type: boolean
                        example: true
                      can_delete:
                        type: boolean
                        example: true
                      can_download:
                        type: boolean
                        example: false
                      can_edit:
                        type: boolean
                        example: true
                      can_view:
                        type: boolean
                        example: true
                      control_job:
                        type: boolean
                        example: true
                      delete_options:
                        type: object
                        properties:
                          action:
                            type: string
                            example: trash
                  asg_email:
                    type: string
                    example: tom.jerry@tj.com
                  asg_name:
                    type: string
                    example: Tom
                  c_email:
                    type: string
                    example: my.customer@domain.com
                    description: 'Customer email address.'
                  c_name:
                    type: string
                    example: 'My Customer'
                  created_at:
                    type: string
                    example: '2021-02-06T10:21:06.000Z'
                  cus_download:
                    type: boolean
                    example: true
                  deleted_at:
                    type: string
                    example: null
                  due_at:
                    type: string
                    example: null
                  guid:
                    type: string
                    example: b7926eb4-6726-4917-abfd-e6eed3476e56
                    description: 'required The unique GUID of the job.'
                  has_comment:
                    type: boolean
                    example: false
                  is_folder:
                    type: boolean
                    example: false
                  is_own:
                    type: boolean
                    example: true
                  is_portal:
                    type: boolean
                    example: false
                  is_watching:
                    type: boolean
                    example: false
                  locked:
                    type: boolean
                    example: false
                  more_info:
                    type: object
                    properties:
                      annotations:
                        type: object
                        properties:
                          annot_cnt:
                            type: integer
                            example: 0
                          annot_cnt_plus:
                            type: boolean
                            example: false
                      pageCount:
                        type: integer
                        example: 1
                      pages:
                        type: array
                        example:
                          -
                            bits: 0
                            color: UNKNOWN
                            height: 922
                            mime: image/png
                            width: 1616
                        items:
                          type: object
                          properties:
                            bits:
                              type: integer
                              example: 0
                            color:
                              type: string
                              example: UNKNOWN
                            height:
                              type: integer
                              example: 922
                            mime:
                              type: string
                              example: image/png
                            width:
                              type: integer
                              example: 1616
                  name:
                    type: string
                    example: 'A Test File.png'
                  newly_assigned:
                    type: boolean
                    example: false
                  parent_guid:
                    type: string
                    example: f1096786-687e-4e40-87c7-bdb90ef631e7
                    description: 'The GUID of the parent folder, if any.'
                  p_email:
                    type: string
                    example: forward.partner@domain.com
                  path_url:
                    type: string
                    example: 'https://www.good2gosoftware.com/review/file/b7926eb4-6726-4917-abfd-e6eed3476e56/document/A%20Test%20File.png?version=1'
                  p_name:
                    type: string
                    example: 'DEF Printer'
                  size:
                    type: integer
                    example: 582817
                  source:
                    type: string
                    example: in-app
                  status:
                    type: string
                    example: new
                  type:
                    type: string
                    example: image/png
                  updated_at:
                    type: string
                    example: '2021-02-06T10:21:06.000Z'
                  version:
                    type: integer
                    example: 1
      tags:
        - 'File upload'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                alt_text:
                  type: string
                  description: 'Alternative text to describe the file or folder.'
                  example: 'File from example customer.'
                comments:
                  type: string
                  description: "Comment, if any, associated with sending notification.\n     This field is relevant when upload is associated with a task."
                  example: null
                default:
                  type: object
                  description: "The default value to be used for task related\n     fields. If defined, it auto fill those properties."
                  example: []
                  properties:
                    comments:
                      type: boolean
                      description: "Whether to use default comments, if\n     <code>comments</code> field is not defined."
                      example: false
                    reviewers:
                      type: boolean
                      description: "Whether to use existing reviewer, if\n     <code>reviewers</code> field is not defined."
                      example: true
                    task:
                      type: boolean
                      description: "Whether to use default value for <code>task</code>\n     sub-properties, if they are not defined."
                      example: false
                file_url:
                  type: string
                  description: "A public downloadable URL which can be used to\n     download the file. Maximum length is 2000 characters. Must be present when\n     <i>filekey</i> is absent."
                  example: 'http://www.crist.info/'
                filekey:
                  type: string
                  format: binary
                  description: "The attached document. The file key to be used in\n     multipart form data shall be <i>filekey</i>."
                label:
                  type: string
                  description: 'Must not be greater than 64 characters.'
                  example: nndma
                name:
                  type: string
                  description: "The name of the file. If not provided then file\n     name is extracted from name parameter of HTTP file upload. This is required\n     when file URL is provided."
                  example: Test-File.pdf
                parent:
                  type: string
                  description: "Parent folder GUID. If not provided then the file will\n     retain previous parent folder."
                  example: 852215c9-2871-4a28-b9fc-b70b4c166e41
                puid:
                  type: string
                  description: 'Must not be greater than 80 characters.'
                  example: trpxitdxvwhn
                recipient:
                  type: email
                  description: 'Email ID of the customer associated with the job.'
                  example: tom.jerry@tj.com
                reviewers:
                  type: array
                  description: "List of reviewers for review task.\n     - Provide this data to initiate a review task with a file upload.\n     - If there is only one reviewer, then use the <code>recipient</code> field.\n     - Provide either an array of <code>email</code> or an array of <code>group</code>.\n     - A set of customers can be assigned a unique group ID in the customer record."
                  example:
                    - []
                  items:
                    type: object
                    properties:
                      email:
                        type: string
                        description: 'Must be a valid email address.'
                        example: manley.cole@example.com
                      group:
                        type: string
                        description: 'The group ID assigned in customer record.'
                        example: et
                schedule:
                  type: string
                  description: "When to schedule the task. The valid values are\n     [<i>now</i>, <i>later</i>]."
                  example: now
                size:
                  type: integer
                  description: "The size of the file in bytes. This field is required and\n     shall be valid size when <i>file_url</i> is provided. It is ignored in the\n     case of direct file upload."
                  example: 789012
                task:
                  type: object
                  description: "The task associated with this job. (Click to see\n     more options.)"
                  example: []
                  properties:
                    category:
                      type: string
                      description: "The task category. The supported values are\n     [<i>assign-task</i>, <i>forward-task</i>, <i>review-task</i>, <i>revision-task</i>,\n     and <i>upload-task</i>]."
                      example: assign-task
                    due_at:
                      type: string
                      description: "Due date of the task to complete. Default value\n     is 'null'."
                      example: '2024-05-21T15:26:01.000Z'
                    req_confirm:
                      type: boolean
                      description: 'Whether required confirmation is enabled or not.'
                      example: false
                    status:
                      type: string
                      description: "The status of the job. Valid values are [<i>new</i>,\n     <i>paused</i>, <i>processing</i>, and <i>done</i>]."
                      example: doloribus
                type:
                  type: string
                  description: "The file mime type. This field is required and shall be\n     valid mime type when <i>file_url</i> is provided. It is ignored in the case\n     of direct file upload."
                  example: application/pdf
              required:
                - file_url
                - filekey
    parameters:
      -
        in: path
        name: job_guid
        description: 'The guid of the job.'
        example: 2dd7f609-d85c-4409-8c12-9fbb494bf549
        required: true
        schema:
          type: string
  /api/v1/upload:
    post:
      summary: 'Upload and create a file'
      operationId: uploadAndCreateAFile
      description: "<aside class=\"notice info\">\n Either upload a file directly or provide the file URL from which Good2Go\n can download it. If both are provided then uploaded file take precedence.\n</aside>\n\n<aside class=\"warning\">\n If existing file is found with same name under the parent folder then\n a unique name is assigned in the format of\n <b>\"{original name} copy {a unique number}.{extension}\".</b>\n</aside>\n<aside class=\"warning\">\n To upload file with other information use HTTP multipart form data.\n</aside>\n<aside class=\"notice info\">\n To know more about response fields refer to <b>api/v1/jobs/{job}</b>\n (<a href=\"#job-management-GETapi-v1-jobs--job_guid-\">Get job information</a>)\n documentation.\n</aside>\n<aside class=\"notice info\">\n If customer or partner information are provided, especially name and email,\n then they are stored in customer records for future reference. If same email\n already exists in the record but name is changed then existing customer data\n is updated in the records.\n Also, without customer email the document view URL is not defined (not\n returned with the response).\n</aside>\n<aside class=\"warning\">\n Scheduling later is not implemented yet. Stay tune; it will be notified when\n this feature is available. If there is a task associated with upload then\n notification is sent immediately.\n</aside>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  ac:
                    can_assign: true
                    can_delete: true
                    can_download: false
                    can_edit: true
                    can_view: true
                    control_job: true
                    delete_options:
                      action: trash
                  asg_email: tom.jerry@tj.com
                  asg_name: Tom
                  c_email: my.customer@domain.com
                  c_name: 'My Customer'
                  created_at: '2021-02-06T10:21:06.000Z'
                  cus_download: true
                  deleted_at: null
                  due_at: null
                  guid: b7926eb4-6726-4917-abfd-e6eed3476e56
                  has_comment: false
                  is_folder: false
                  is_own: true
                  is_portal: false
                  is_watching: false
                  locked: false
                  more_info:
                    annotations:
                      annot_cnt: 0
                      annot_cnt_plus: false
                    pageCount: 1
                    pages:
                      -
                        bits: 0
                        color: UNKNOWN
                        height: 922
                        mime: image/png
                        width: 1616
                  name: 'A Test File.png'
                  newly_assigned: false
                  parent_guid: f1096786-687e-4e40-87c7-bdb90ef631e7
                  p_email: forward.partner@domain.com
                  path_url: 'https://www.good2gosoftware.com/review/file/b7926eb4-6726-4917-abfd-e6eed3476e56/document/A%20Test%20File.png?version=1'
                  p_name: 'DEF Printer'
                  size: 582817
                  source: in-app
                  status: new
                  type: image/png
                  updated_at: '2021-02-06T10:21:06.000Z'
                  version: 1
                properties:
                  ac:
                    type: object
                    properties:
                      can_assign:
                        type: boolean
                        example: true
                      can_delete:
                        type: boolean
                        example: true
                      can_download:
                        type: boolean
                        example: false
                      can_edit:
                        type: boolean
                        example: true
                      can_view:
                        type: boolean
                        example: true
                      control_job:
                        type: boolean
                        example: true
                      delete_options:
                        type: object
                        properties:
                          action:
                            type: string
                            example: trash
                  asg_email:
                    type: string
                    example: tom.jerry@tj.com
                  asg_name:
                    type: string
                    example: Tom
                  c_email:
                    type: string
                    example: my.customer@domain.com
                    description: 'Customer email address.'
                  c_name:
                    type: string
                    example: 'My Customer'
                  created_at:
                    type: string
                    example: '2021-02-06T10:21:06.000Z'
                  cus_download:
                    type: boolean
                    example: true
                  deleted_at:
                    type: string
                    example: null
                  due_at:
                    type: string
                    example: null
                  guid:
                    type: string
                    example: b7926eb4-6726-4917-abfd-e6eed3476e56
                    description: 'required The unique GUID of the job.'
                  has_comment:
                    type: boolean
                    example: false
                  is_folder:
                    type: boolean
                    example: false
                  is_own:
                    type: boolean
                    example: true
                  is_portal:
                    type: boolean
                    example: false
                  is_watching:
                    type: boolean
                    example: false
                  locked:
                    type: boolean
                    example: false
                  more_info:
                    type: object
                    properties:
                      annotations:
                        type: object
                        properties:
                          annot_cnt:
                            type: integer
                            example: 0
                          annot_cnt_plus:
                            type: boolean
                            example: false
                      pageCount:
                        type: integer
                        example: 1
                      pages:
                        type: array
                        example:
                          -
                            bits: 0
                            color: UNKNOWN
                            height: 922
                            mime: image/png
                            width: 1616
                        items:
                          type: object
                          properties:
                            bits:
                              type: integer
                              example: 0
                            color:
                              type: string
                              example: UNKNOWN
                            height:
                              type: integer
                              example: 922
                            mime:
                              type: string
                              example: image/png
                            width:
                              type: integer
                              example: 1616
                  name:
                    type: string
                    example: 'A Test File.png'
                  newly_assigned:
                    type: boolean
                    example: false
                  parent_guid:
                    type: string
                    example: f1096786-687e-4e40-87c7-bdb90ef631e7
                    description: 'The GUID of the parent folder, if any.'
                  p_email:
                    type: string
                    example: forward.partner@domain.com
                  path_url:
                    type: string
                    example: 'https://www.good2gosoftware.com/review/file/b7926eb4-6726-4917-abfd-e6eed3476e56/document/A%20Test%20File.png?version=1'
                  p_name:
                    type: string
                    example: 'DEF Printer'
                  size:
                    type: integer
                    example: 582817
                  source:
                    type: string
                    example: in-app
                  status:
                    type: string
                    example: new
                  type:
                    type: string
                    example: image/png
                  updated_at:
                    type: string
                    example: '2021-02-06T10:21:06.000Z'
                  version:
                    type: integer
                    example: 1
      tags:
        - 'File upload'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                alt_text:
                  type: string
                  description: 'Alternative text to describe the file or folder.'
                  example: 'File from example customer.'
                comments:
                  type: string
                  description: "Comment, if any, associated with sending notification.\n     This field is relevant when upload is associated with a task."
                  example: null
                default:
                  type: object
                  description: "The default value to be used for task related\n     fields. If defined, it auto fill those properties."
                  example: []
                  properties:
                    comments:
                      type: boolean
                      description: "Whether to use default comments, if\n     <code>comments</code> field is not defined."
                      example: true
                    reviewers:
                      type: boolean
                      description: "Whether to use existing reviewer, if\n     <code>reviewers</code> field is not defined."
                      example: false
                    task:
                      type: boolean
                      description: "Whether to use default value for <code>task</code>\n     sub-properties, if they are not defined."
                      example: true
                file_url:
                  type: string
                  description: "A public downloadable URL which can be used to\n     download the file. Maximum length is 2000 characters. Must be present when\n     <i>filekey</i> is absent."
                  example: 'http://www.tremblay.biz/qui-tenetur-necessitatibus-dolorem-soluta-et.html'
                filekey:
                  type: string
                  format: binary
                  description: "The attached document. The file key to be used in\n     multipart form data shall be <i>filekey</i>."
                label:
                  type: string
                  description: 'Assign one of the user defined label.'
                  example: dolores
                name:
                  type: string
                  description: "The name of the file. If not provided then file\n     name is extracted from name parameter of HTTP file upload. This is required\n     when file URL is provided."
                  example: Test-File.pdf
                parent:
                  type: string
                  description: "Parent folder GUID. If not provided then the file is\n     added to the root folder."
                  example: 852215c9-2871-4a28-b9fc-b70b4c166e41
                puid:
                  type: string
                  description: 'Must not be greater than 80 characters.'
                  example: glfrbslco
                recipient:
                  type: email
                  description: 'Email ID of the customer associated with the job.'
                  example: tom.jerry@tj.com
                reviewers:
                  type: array
                  description: "List of reviewers for review task.\n     - Provide this data to initiate a review task with a file upload.\n     - If there is only one reviewer, then use the <code>recipient</code> field.\n     - Provide either an array of <code>email</code> or an array of <code>group</code>.\n     - A set of customers can be assigned a unique group ID in the customer record."
                  example:
                    - []
                  items:
                    type: object
                    properties:
                      email:
                        type: string
                        description: 'Must be a valid email address.'
                        example: russel.breanna@example.org
                      group:
                        type: string
                        description: 'The group ID assigned in customer record.'
                        example: voluptates
                schedule:
                  type: string
                  description: "When to schedule the task. The valid values are\n     [<i>now</i>, <i>later</i>]."
                  example: now
                size:
                  type: integer
                  description: "The size of the file in bytes. This field is required and\n     shall be valid size when <i>file_url</i> is provided. It is ignored in the\n     case of direct file upload. Example 345678"
                  example: 10
                task:
                  type: object
                  description: "The task associated with this job. (Click to see\n     more options.)"
                  example: []
                  properties:
                    category:
                      type: string
                      description: "The task category. The supported values are\n     [<i>assign-task</i>, <i>forward-task</i>, <i>review-task</i>, <i>revision-task</i>,\n     and <i>upload-task</i>]."
                      example: review-task
                    due_at:
                      type: string
                      description: "Due date of the task to complete. Default value\n     is 'null'."
                      example: '2024-05-21T15:26:01.000Z'
                    req_confirm:
                      type: boolean
                      description: 'Whether required confirmation is enabled or not.'
                      example: true
                    status:
                      type: string
                      description: "The status of the job. Valid values are [<i>new</i>,\n     <i>paused</i>, <i>processing</i>, and <i>done</i>]."
                      example: paused
                type:
                  type: string
                  description: "The file mime type. This field is required and shall be\n     valid mime type when <i>file_url</i> is provided. It is ignored in the case\n     of direct file upload."
                  example: application/img
              required:
                - file_url
                - filekey
  '/review/download/{job_guid}/document/{name}':
    get:
      summary: 'Download document'
      operationId: downloadDocument
      description: "This method does not need authentication. If you have the job GUID and name,\nthen file can be downloaded."
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    message: 'Service Unavailable'
                    status_code: 503
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                        example: 'Service Unavailable'
                      status_code:
                        type: integer
                        example: 503
      tags:
        - 'File download'
      security: []
    parameters:
      -
        in: path
        name: job_guid
        description: "The guid of the job. This can be derived from the\n     list of jobs returned from api <i>api/v1/jobs</i>."
        example: ad
        required: true
        schema:
          type: string
      -
        in: path
        name: name
        description: "The name of the job. This can be derived from the\n     list of jobs returned from api <i>api/v1/jobs</i>."
        example: sed
        required: true
        schema:
          type: string
  /api/v1/jobs/tasks/default:
    get:
      summary: 'Get default task'
      operationId: getDefaultTask
      description: "Return a sample default task of given kind. This can be used to construct\na task. If given task kind already exist for the job then existing task is\nreturned.\n\n<aside class=\"notice info\">\n     The <i>job_category</i> parameter is applicable only for review task.\n     For other tasks, it is ignored.\n</aside>"
      parameters:
        -
          in: query
          name: job_category
          description: "The job category. The supported values are\n     [<i>file</i>, <i>folder</i>, and <i>order</i>]. Default value is <i>file</i>."
          example: order
          required: false
          schema:
            type: string
            description: "The job category. The supported values are\n     [<i>file</i>, <i>folder</i>, and <i>order</i>]. Default value is <i>file</i>."
            example: order
        -
          in: query
          name: kind
          description: "The task category. The supported values\n     are [<i>assign-task</i>, <i>forward-task</i>, <i>quote-review-task</i>,\n     <i>review-task</i>, <i>revision-task</i> and <i>upload-task</i>]."
          example: review-task
          required: true
          schema:
            type: string
            description: "The task category. The supported values\n     are [<i>assign-task</i>, <i>forward-task</i>, <i>quote-review-task</i>,\n     <i>review-task</i>, <i>revision-task</i> and <i>upload-task</i>]."
            example: review-task
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  assigned_to: tom.jerry@abc.com
                  category: review-reminders
                  created_at: '2021-01-21T06:21:19.000Z'
                  due_at: '2021-01-28T15:42:36.000Z'
                  executed_at: '2021-01-24T06:37:06.000Z'
                  id: 10
                  job_status: approved
                  req_confirm: true
                  status: done
                  updated_at: '2021-01-25T09:45:10.000Z'
                properties:
                  assigned_to:
                    type: string
                    example: tom.jerry@abc.com
                    description: 'The assignee of the task.'
                  category:
                    type: string
                    example: review-reminders
                    description: "The task category. The expected values\n     are [<i>assign-task</i>, <i>forward-task</i>, <i>quote-review-task</i>,\n     <i>review-task</i>, <i>revision-task</i> and <i>upload-task</i>]."
                  created_at:
                    type: string
                    example: '2021-01-21T06:21:19.000Z'
                    description: 'Task creation date.'
                  due_at:
                    type: string
                    example: '2021-01-28T15:42:36.000Z'
                    description: "Due date of the task to complete. Default value\n     is 'null'."
                  executed_at:
                    type: string
                    example: '2021-01-24T06:37:06.000Z'
                    description: "Last task execution date. Default value is\n     'null'."
                  id:
                    type: integer
                    example: 10
                    description: "The id of this task. Id is especially useful for\n     updating a given task."
                  job_status:
                    type: string
                    example: approved
                    description: 'The job status selected by the assignee.'
                  req_confirm:
                    type: boolean
                    example: true
                    description: "Whether required confirmation is enabled or\n     not."
                  status:
                    type: string
                    example: done
                    description: "The status of the job. Valid values are [<i>new</i>,\n     <i>paused</i>, <i>processing</i>, and <i>done</i>]. Default value is 'new'."
                  updated_at:
                    type: string
                    example: '2021-01-25T09:45:10.000Z'
                    description: 'Task update date.'
      tags:
        - 'Job tasks'
  '/api/v1/jobs/{job_guid}/tasks':
    get:
      summary: 'Get task list'
      operationId: getTaskList
      description: 'Return all tasks associated with the given job.'
      parameters:
        -
          in: query
          name: kind
          description: "The task category. The supported values\n     are [<i>review-task</i>, <i>upload-task</i>, <i>revision-task</i>,\n     and <i>assign-task</i>]. May have multiple entries."
          example: review-task
          required: false
          schema:
            type: string
            description: "The task category. The supported values\n     are [<i>review-task</i>, <i>upload-task</i>, <i>revision-task</i>,\n     and <i>assign-task</i>]. May have multiple entries."
            example: review-task
        -
          in: query
          name: default
          description: "Get default for task category, if not\n     found."
          example: false
          required: false
          schema:
            type: boolean
            description: "Get default for task category, if not\n     found."
            example: false
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                example:
                  -
                    assigned_to: tom.jerry@abc.com
                    category: review-reminders
                    created_at: '2021-01-21T06:21:19.000Z'
                    due_at: '2021-01-28T15:42:36.000Z'
                    executed_at: '2021-01-24T06:37:06.000Z'
                    id: 10
                    job_status: pending
                    req_confirm: false
                    status: paused
                    updated_at: '2021-01-25T09:45:10.000Z'
      tags:
        - 'Job tasks'
    post:
      summary: 'Create a new task'
      operationId: createANewTask
      description: 'Create a new task and also newly created task is executed immediately.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  assigned_to: tom.jerry@abc.com
                  category: review-reminders
                  created_at: '2021-01-21T06:21:19.000Z'
                  due_at: '2021-01-28T15:42:36.000Z'
                  executed_at: '2021-01-24T06:37:06.000Z'
                  id: 10
                  job_status: approved
                  req_confirm: true
                  status: done
                  updated_at: '2021-01-25T09:45:10.000Z'
                properties:
                  assigned_to:
                    type: string
                    example: tom.jerry@abc.com
                    description: 'The assignee of the task.'
                  category:
                    type: string
                    example: review-reminders
                    description: "The task category. The expected values\n     are [<i>assign-task</i>, <i>forward-task</i>, <i>quote-review-task</i>,\n     <i>review-task</i>, <i>revision-task</i> and <i>upload-task</i>]."
                  created_at:
                    type: string
                    example: '2021-01-21T06:21:19.000Z'
                    description: 'Task creation date.'
                  due_at:
                    type: string
                    example: '2021-01-28T15:42:36.000Z'
                    description: "Due date of the task to complete. Default value\n     is 'null'."
                  executed_at:
                    type: string
                    example: '2021-01-24T06:37:06.000Z'
                    description: "Last task execution date. Default value is\n     'null'."
                  id:
                    type: integer
                    example: 10
                    description: "The id of this task. Id is especially useful for\n     updating a given task."
                  job_status:
                    type: string
                    example: approved
                    description: 'The job status selected by the assignee.'
                  req_confirm:
                    type: boolean
                    example: true
                    description: "Whether required confirmation is enabled or\n     not."
                  status:
                    type: string
                    example: done
                    description: "The status of the job. Valid values are [<i>new</i>,\n     <i>paused</i>, <i>processing</i>, and <i>done</i>]. Default value is 'new'."
                  updated_at:
                    type: string
                    example: '2021-01-25T09:45:10.000Z'
                    description: 'Task last update date.'
      tags:
        - 'Job tasks'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                assigned_to:
                  type: string
                  description: 'The assignee of the task.'
                  example: abc@xyz.com.
                category:
                  type: string
                  description: "The task category. The supported values\n     are [<i>assign-task</i>, <i>forward-task</i>, <i>quote-review-task</i>,\n     <i>review-task</i>, <i>revision-task</i> and <i>upload-task</i>]."
                  example: review-task.
                due_at:
                  type: string
                  description: "Deadline of the task to complete. It can be 'null'."
                  example: '2024-01-24T06:37:06.000Z.'
                job_status:
                  type: string
                  description: "The associated job status, if any. Refer to job\n     related APIs for more information."
                  example: Pending.
                req_confirm:
                  type: boolean
                  description: "Whether to enable confirmation checkbox\n     for approval."
                  example: true
                status:
                  type: string
                  description: "The status of the job. If provided, the value\n     shall be <i>new</i>."
                  example: new.
              required:
                - assigned_to
                - category
    parameters:
      -
        in: path
        name: job_guid
        description: "The GUID of the job. This can be derived from the\n     list of jobs returned from api <code>api/v1/jobs</code> (Get job information)."
        example: 2dd7f609-d85c-4409-8c12-9fbb494bf549.
        required: true
        schema:
          type: string
  '/api/v1/jobs/{job_guid}/tasks/{id}':
    get:
      summary: 'Get task information'
      operationId: getTaskInformation
      description: 'Return the information associated with given task of a job.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  assigned_to: tom.jerry@abc.com
                  category: review-reminders
                  created_at: '2021-01-21T06:21:19.000Z'
                  due_at: '2021-01-28T15:42:36.000Z'
                  executed_at: '2021-01-24T06:37:06.000Z'
                  id: 10
                  job_status: approved
                  req_confirm: true
                  status: done
                  updated_at: '2021-01-25T09:45:10.000Z'
                properties:
                  assigned_to:
                    type: string
                    example: tom.jerry@abc.com
                    description: 'The assignee of the task.'
                  category:
                    type: string
                    example: review-reminders
                    description: "The task category. The expected values\n     are [<i>assign-task</i>, <i>forward-task</i>, <i>quote-review-task</i>,\n     <i>review-task</i>, <i>revision-task</i> and <i>upload-task</i>]."
                  created_at:
                    type: string
                    example: '2021-01-21T06:21:19.000Z'
                    description: 'Task creation date.'
                  due_at:
                    type: string
                    example: '2021-01-28T15:42:36.000Z'
                    description: "Due date of the task to complete. Default value\n     is 'null'."
                  executed_at:
                    type: string
                    example: '2021-01-24T06:37:06.000Z'
                    description: "Last task execution date. Default value is\n     'null'."
                  id:
                    type: integer
                    example: 10
                    description: "The id of this task. Id is especially useful for\n     updating a given task."
                  job_status:
                    type: string
                    example: approved
                    description: 'The job status selected by the assignee.'
                  req_confirm:
                    type: boolean
                    example: true
                    description: "Whether required confirmation is enabled or\n     not."
                  status:
                    type: string
                    example: done
                    description: "The status of the job. Valid values are [<i>new</i>,\n     <i>paused</i>, <i>processing</i>, and <i>done</i>]. Default value is 'new'."
                  updated_at:
                    type: string
                    example: '2021-01-25T09:45:10.000Z'
                    description: 'Task last update date.'
      tags:
        - 'Job tasks'
    put:
      summary: 'Update existing task'
      operationId: updateExistingTask
      description: 'Update an existing task with new information.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  assigned_to: tom.jerry@abc.com
                  category: review-reminders
                  created_at: '2021-01-21T06:21:19.000Z'
                  due_at: '2021-01-28T15:42:36.000Z'
                  executed_at: '2021-01-24T06:37:06.000Z'
                  id: 10
                  job_status: approved
                  req_confirm: true
                  status: done
                  updated_at: '2021-01-25T09:45:10.000Z'
                properties:
                  assigned_to:
                    type: string
                    example: tom.jerry@abc.com
                    description: 'The assignee of the task. Example: abc@xyz.com.'
                  category:
                    type: string
                    example: review-reminders
                    description: "The task category. The expected values\n     are [<i>assign-task</i>, <i>forward-task</i>, <i>quote-review-task</i>,\n     <i>review-task</i>, <i>revision-task</i> and <i>upload-task</i>].\n     Example: review-task."
                  created_at:
                    type: string
                    example: '2021-01-21T06:21:19.000Z'
                    description: 'Task creation date.'
                  due_at:
                    type: string
                    example: '2021-01-28T15:42:36.000Z'
                    description: "Due date of the task to complete. Default value\n     is 'null'."
                  executed_at:
                    type: string
                    example: '2021-01-24T06:37:06.000Z'
                    description: "Last task execution date. Default value is\n     'null'."
                  id:
                    type: integer
                    example: 10
                    description: "The id of this task. Id is especially useful for\n     updating a given task."
                  job_status:
                    type: string
                    example: approved
                    description: 'The job status selected by the assignee.'
                  req_confirm:
                    type: boolean
                    example: true
                    description: "Whether required confirmation is enabled or\n     not. Example: false."
                  status:
                    type: string
                    example: done
                    description: "The status of the job. Valid values are [<i>new</i>,\n     <i>paused</i>, <i>processing</i>, and <i>done</i>]. Default value is 'new'."
                  updated_at:
                    type: string
                    example: '2021-01-25T09:45:10.000Z'
                    description: 'Task last update date.'
      tags:
        - 'Job tasks'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                category:
                  type: string
                  description: 'The task category. Read the job task documentation for more information. The value and <code>category</code> must match.'
                  example: review-task
                due_at:
                  type: string
                  description: 'For auto reminder set the deadline. Must be a valid date in the format <code>Y-m-d\TH:i:s.v\Z</code>.'
                  example: '2025-04-12T04:53:59.000Z'
                job_status:
                  type: string
                  description: 'The associated job status selected by assignee. Must not be one of <code>pending</code> or <code>processing</code>.'
                  example: change-requested
                  enum:
                    - approved
                    - change-requested
                    - done
                    - expired
                    - new
                    - pending
                    - processing
                    - rejected
                req_confirm:
                  type: boolean
                  description: 'Whether confirmation is required during approval.'
                  example: true
                status:
                  type: string
                  description: 'The status of the task, if any.'
                  example: processing
                  enum:
                    - closed
                    - done
                    - paused
                    - processing
    parameters:
      -
        in: path
        name: job_guid
        description: "The GUID of the job. This can be derived from the\n     list of jobs returned from api <code>api/v1/jobs</code> (Get job information)."
        example: 2dd7f609-d85c-4409-8c12-9fbb494bf549.
        required: true
        schema:
          type: string
      -
        in: path
        name: id
        description: 'The ID of the task.'
        example: 290
        required: true
        schema:
          type: integer
  '/api/v1/jobs/{job_guid}/tasks/{task_id}/notify':
    put:
      summary: 'Send notification email'
      operationId: sendNotificationEmail
      description: 'Send an email to assignee of task.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  assigned_to: tom.jerry@abc.com
                  category: review-reminders
                  created_at: '2021-01-21T06:21:19.000Z'
                  due_at: '2021-01-28T15:42:36.000Z'
                  executed_at: '2021-01-24T06:37:06.000Z'
                  id: 10
                  job_status: approved
                  req_confirm: true
                  status: done
                  updated_at: '2021-01-25T09:45:10.000Z'
                properties:
                  assigned_to:
                    type: string
                    example: tom.jerry@abc.com
                    description: 'The assignee of the task.'
                  category:
                    type: string
                    example: review-reminders
                    description: "The task category. The expected values\n     are [<i>assign-task</i>, <i>forward-task</i>, <i>quote-review-task</i>,\n     <i>review-task</i>, <i>revision-task</i> and <i>upload-task</i>]."
                  created_at:
                    type: string
                    example: '2021-01-21T06:21:19.000Z'
                    description: 'Task creation date.'
                  due_at:
                    type: string
                    example: '2021-01-28T15:42:36.000Z'
                    description: "Due date of the task to complete. Default value\n     is 'null'."
                  executed_at:
                    type: string
                    example: '2021-01-24T06:37:06.000Z'
                    description: "Last task execution date. Default value is\n     'null'."
                  id:
                    type: integer
                    example: 10
                    description: "The id of this task. Id is especially useful for\n     updating a given task."
                  job_status:
                    type: string
                    example: approved
                    description: 'The job status selected by the assignee.'
                  req_confirm:
                    type: boolean
                    example: true
                    description: "Whether required confirmation is enabled or\n     not."
                  status:
                    type: string
                    example: done
                    description: "The status of the job. Valid values are [<i>new</i>,\n     <i>paused</i>, <i>processing</i>, and <i>done</i>]. Default value is 'new'."
                  updated_at:
                    type: string
                    example: '2021-01-25T09:45:10.000Z'
                    description: 'Task last update date.'
      tags:
        - 'Job tasks'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                comments:
                  type: string
                  description: "Comment, if any, associated with this notification.\n     If not provided, then last comment is used for notification."
                  example: est
                default:
                  type: object
                  description: "The default value to be used for task related\n     fields. If defined, it auto fill those properties."
                  example: []
                  properties:
                    comments:
                      type: boolean
                      description: "Whether to use default comments, if\n     <code>comments</code> field is not defined."
                      example: true
                    task:
                      type: boolean
                      description: "Whether to use default value for <code>task</code>\n     sub-properties, if they are not defined."
                      example: false
                reason:
                  type: string
                  description: "The notification reason. It shall have one of the\n     following values:<br>\n     - notify-task: Send notification for given task (<i>default</i>)<br>\n     - reset-task: Reset given task and status, and bring to the initial state<br>\n     - send-message: Send a simple message for given task<br>\n     - update-task: Simply update the task without sending notification"
                  example: ad
                schedule:
                  type: string
                  description: "When to schedule this reminder. The\n     valid values are [<i>now</i>, <i>later</i>]."
                  example: corrupti
                task:
                  type: object
                  description: 'The task associated with this notification.'
                  example: null
                  properties:
                    category:
                      type: string
                      description: 'The task category. Read the job task documentation for more information. This field is required when <code>task</code> is present.'
                      example: review-task
                      enum:
                        - assign-task
                        - forward-task
                        - review-task
                        - revision-task
                    due_at:
                      type: string
                      description: 'For auto reminder set the due date. Must be a valid date in the format <code>Y-m-d\TH:i:s.v\Z</code>.'
                      example: '2024-05-21T15:26:01.000Z'
                    req_confirm:
                      type: boolean
                      description: 'Whether confirmation is required during approval.'
                      example: false
                    status:
                      type: string
                      description: 'The status of the task, if any.'
                      example: paused
                      enum:
                        - new
                        - paused
                        - processing
              required:
                - schedule
    parameters:
      -
        in: path
        name: job_guid
        description: "The GUID of the job. This can be derived from the\n     list of jobs returned from api <code>api/v1/jobs</code> (Get job information)."
        example: 2dd7f609-d85c-4409-8c12-9fbb494bf549.
        required: true
        schema:
          type: string
      -
        in: path
        name: task_id
        description: 'The ID of the task.'
        example: 290
        required: true
        schema:
          type: integer
  '/api/v1/jobs/{job_guid}/tasks/{task_id}':
    delete:
      summary: 'Delete a job task'
      operationId: deleteAJobTask
      description: 'Delete given task related to a job.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example: {  }
                properties: {  }
      tags:
        - 'Job tasks'
    parameters:
      -
        in: path
        name: job_guid
        description: "The GUID of the job. This can be derived from the\n     list of jobs returned from api <code>api/v1/jobs</code> (Get job information)."
        example: 2dd7f609-d85c-4409-8c12-9fbb494bf549.
        required: true
        schema:
          type: string
      -
        in: path
        name: task_id
        description: 'The ID of the task.'
        example: 290
        required: true
        schema:
          type: integer
  '/api/v1/jobs/{job_guid}/assign':
    post:
      summary: 'Assign to team member'
      operationId: assignToTeamMember
      description: "Assign a job to a team member. Job can only be  assigned to team members who\nare part same team. Visit account page got more information about team and team\nmembers.\n\n<aside class=\"notice info\">\n  Job can't be assigned through job update API call: <b>POST api/v1/jobs/{job}</b>.\n</aside>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  assignee: tom.jerry@disney.com
                  comments: 'Can you update the bleed?'
                  task:
                    category: assign-task
                    created_at: '2021-08-25T08:30:59.000Z'
                    due_at: null
                    executed_at: '2021-08-25T10:01:37.460Z'
                    id: 15
                    status: new
                properties:
                  assignee:
                    type: string
                    example: tom.jerry@disney.com
                    description: 'required Email address of team member.'
                  comments:
                    type: string
                    example: 'Can you update the bleed?'
                    description: 'The comment sent through this notification.'
                  task:
                    type: object
                    properties:
                      category:
                        type: string
                        example: assign-task
                        description: "required The task category. The supported values\n     are [<i>review-task</i>, <i>upload-task</i>, <i>revision-task</i>,\n     and <i>assign-task</i>]."
                      created_at:
                        type: string
                        example: '2021-08-25T08:30:59.000Z'
                      due_at:
                        type: string
                        example: null
                        description: "Due date of the task to complete. Default value\n     is 'null'."
                      executed_at:
                        type: string
                        example: '2021-08-25T10:01:37.460Z'
                      id:
                        type: integer
                        example: 15
                      status:
                        type: string
                        example: new
                        description: "The status of the job. Valid values are [<i>new</i>,\n     <i>paused</i>, <i>processing</i>, and <i>done</i>]. Default value is 'new'."
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    message: 'User abc.pqr@xyz.com is not a team member.'
                    status_code: 422
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                        example: 'User abc.pqr@xyz.com is not a team member.'
                      status_code:
                        type: integer
                        example: 422
      tags:
        - 'Job tasks'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                assignee:
                  type: string
                  description: "Email address of team member. It can be assigned\n     to <i>null</i> value as well."
                  example: abc@mno.com
                comments:
                  type: string
                  description: 'Comment, if any, associated with assignment.'
                  example: rem
                default:
                  type: object
                  description: ''
                  example: null
                  properties:
                    comments:
                      type: boolean
                      description: ''
                      example: true
                    task:
                      type: boolean
                      description: ''
                      example: false
                reason:
                  type: string
                  description: "The notification reason. It must be either of the two\n     values:\n     <ul>\n       <li>\n         <i>notify-task</i>: To create or update an assignment task.\n       </li>\n       <li>\n         <i>send-message</i>: To complete an existing assignment task.\n       </li>\n     </ul> Use of other values for reason is not recommendable. \n<aside class=\"notice info\">\n  Note, <code>reason</code> is an optional field. If not provided then its\n  value is deduced from <code>assignee</code> or <code>recipient</code>. If\n  <code>assignee</code> has valid email then value of <code>reason</code>\n  field is assumed to be <i>notify-task</i>. If <code>assignee</code> is not\n  provided or set to null/empty, then <code>reason</code> field is assumed\n  to be <i>send-message</i>.\n</aside>"
                  example: null
                recipient:
                  type: string
                  description: 'Email address of team member. This api required either assignee or recipient. If both are provided, then assignee takes the precedence. Must be a valid email address.'
                  example: abc@mno.com
                schedule:
                  type: string
                  description: 'The notification schedule time.'
                  example: now
                  enum:
                    - now
                    - later
                task:
                  type: object
                  description: 'The task associated with this job'
                  example: []
                  properties:
                    category:
                      type: string
                      description: "The task category. Only supported values\n     is <i>assign-task</i>."
                      example: qui
                    due_at:
                      type: string
                      description: "Due date of the task to complete. Default value\n     is <i>null</i>."
                      example: odio
                    req_confirm:
                      type: boolean
                      description: 'Whether confirmation is required during approval.'
                      example: false
                    status:
                      type: string
                      description: "The status of the job. Valid values are [<i>new</i>,\n     <i>paused</i>, <i>processing</i>, and <i>done</i>]."
                      example: temporibus
              required:
                - schedule
                - task
    parameters:
      -
        in: path
        name: job_guid
        description: "The guid of the job. This can be derived from the\n     list of jobs returned from api 'api/v1/jobs'."
        example: b507769f-f7ec-40d2-bd29-f3825adf83ca
        required: true
        schema:
          type: string
  '/api/v1/jobs/{job_guid}/reminders':
    get:
      summary: 'Get list of reminders'
      operationId: getListOfReminders
      description: "This method list down reminders specifically assigned to given job.\n\n<aside class=\"warning\">\n  To get list of active or past reminders and notifications use the\n  notification API <b>api/v1/jobs/{job}/tasks/history</b>.\n</aside>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                example:
                  -
                    cancelled: true
                    comparator: before
                    created_at: '2021-02-06T17:37:17.000Z'
                    date: '2021-12-01T14:54:22.000Z'
                    id: 1
                    is_auto: true
                    job_guid: 1ff38f4e-9c0d-4b1b-a665-3ef5aff896fb
                    quantity: 2
                    schedule: later
                    unit: days
                    updated_at: '2021-02-06T17:37:17.000Z'
                  -
                    cancelled: false
                    comparator: before
                    created_at: '2020-08-19T17:11:11.000Z'
                    date: '2021-12-02T14:54:22.000Z'
                    id: 1
                    is_auto: true
                    job_guid: 1ff38f4e-9c0d-4b1b-a665-3ef5aff896fb
                    quantity: 1
                    schedule: later
                    unit: days
                    updated_at: '2021-01-07T10:17:33.000Z'
                  -
                    cancelled: false
                    comparator: none
                    date: '2020-11-15T14:48:07.000Z'
                    id: -1
                    is_auto: false
                    job_guid: 1ff38f4e-9c0d-4b1b-a665-3ef5aff896fb
                    quantity: 0
                    schedule: later
                    unit: none
                  -
                    cancelled: false
                    comparator: none
                    date: '2020-11-13T02:43:28.000Z'
                    id: -1
                    is_auto: false
                    job_guid: 1ff38f4e-9c0d-4b1b-a665-3ef5aff896fb
                    quantity: 0
                    schedule: later
                    unit: none
                  -
                    cancelled: false
                    comparator: none
                    date: '2020-10-17T05:12:30.000Z'
                    id: -1
                    is_auto: false
                    job_guid: 1ff38f4e-9c0d-4b1b-a665-3ef5aff896fb
                    quantity: 0
                    schedule: later
                    unit: none
      tags:
        - 'Job reminders'
    post:
      summary: 'Create a new reminder'
      operationId: createANewReminder
      description: "All the values are with reference to due date defined for the job. Let us say\na reminder to be set 5 hours before due date then the parameters will be\n<i>{ 'quantity': 5, 'unit': 'hours', 'comparator': 'before' }</i>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  cancelled: true
                  comparator: before
                  created_at: '2021-02-06T17:37:17.000Z'
                  id: 123
                  job_guid: 1ff38f4e-9c0d-4b1b-a665-3ef5aff896fb
                  quantity: 5
                  unit: hours
                  updated_at: '2021-02-06T17:37:17.000Z'
                properties:
                  cancelled:
                    type: boolean
                    example: true
                  comparator:
                    type: string
                    example: before
                  created_at:
                    type: string
                    example: '2021-02-06T17:37:17.000Z'
                  id:
                    type: integer
                    example: 123
                  job_guid:
                    type: string
                    example: 1ff38f4e-9c0d-4b1b-a665-3ef5aff896fb
                  quantity:
                    type: integer
                    example: 5
                  unit:
                    type: string
                    example: hours
                  updated_at:
                    type: string
                    example: '2021-02-06T17:37:17.000Z'
      tags:
        - 'Job reminders'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                cancelled:
                  type: boolean
                  description: 'Whether this reminder was cancelled.'
                  example: false
                comparator:
                  type: string
                  description: 'The comparator with reference to due date and time.'
                  example: before
                  enum:
                    - none
                    - equal
                    - before
                    - after
                    - now
                job_guid:
                  type: string
                  description: 'Must be a valid UUID.'
                  example: bd1254b9-eadc-3791-a0a9-c20c02b2927b
                quantity:
                  type: integer
                  description: 'The quantity part of auto reminder. Must not be greater than 3600. Must be at least 0.'
                  example: 87
                unit:
                  type: string
                  description: 'The unit part of auto reminder.'
                  example: hours
                  enum:
                    - none
                    - minutes
                    - hours
                    - days
              required:
                - cancelled
                - comparator
                - job_guid
                - quantity
                - unit
    parameters:
      -
        in: path
        name: job_guid
        description: "The GUID of the job. This can be derived from the\n     list of jobs returned from api <code>api/v1/jobs</code> (Get job information)."
        example: 03a71fd0-cc06-4432-bfef-44baa7a1d7c6.
        required: true
        schema:
          type: string
  '/api/v1/jobs/{job_guid}/reminders/{id}':
    get:
      summary: 'Get job reminder information'
      operationId: getJobReminderInformation
      description: "Return the reminder associated with given job.\n\n<aside class=\"warning\">\n  This method does not return reminder set in user setting.\n</aside>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  cancelled: true
                  comparator: before
                  created_at: '2021-02-06T17:37:17.000Z'
                  id: 123
                  job_guid: 1ff38f4e-9c0d-4b1b-a665-3ef5aff896fb
                  quantity: 5
                  unit: hours
                  updated_at: '2021-02-06T17:37:17.000Z'
                properties:
                  cancelled:
                    type: boolean
                    example: true
                  comparator:
                    type: string
                    example: before
                  created_at:
                    type: string
                    example: '2021-02-06T17:37:17.000Z'
                  id:
                    type: integer
                    example: 123
                  job_guid:
                    type: string
                    example: 1ff38f4e-9c0d-4b1b-a665-3ef5aff896fb
                  quantity:
                    type: integer
                    example: 5
                  unit:
                    type: string
                    example: hours
                  updated_at:
                    type: string
                    example: '2021-02-06T17:37:17.000Z'
      tags:
        - 'Job reminders'
    put:
      summary: 'Update existing job reminder'
      operationId: updateExistingJobReminder
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  cancelled: true
                  comparator: before
                  created_at: '2021-02-06T17:37:17.000Z'
                  id: 123
                  job_guid: 1ff38f4e-9c0d-4b1b-a665-3ef5aff896fb
                  quantity: 5
                  unit: hours
                  updated_at: '2021-02-06T17:37:17.000Z'
                properties:
                  cancelled:
                    type: boolean
                    example: true
                  comparator:
                    type: string
                    example: before
                  created_at:
                    type: string
                    example: '2021-02-06T17:37:17.000Z'
                  id:
                    type: integer
                    example: 123
                  job_guid:
                    type: string
                    example: 1ff38f4e-9c0d-4b1b-a665-3ef5aff896fb
                  quantity:
                    type: integer
                    example: 5
                  unit:
                    type: string
                    example: hours
                  updated_at:
                    type: string
                    example: '2021-02-06T17:37:17.000Z'
      tags:
        - 'Job reminders'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                cancelled:
                  type: boolean
                  description: 'Whether this reminder was cancelled.'
                  example: false
                comparator:
                  type: string
                  description: 'The comparator with reference to due date and time.'
                  example: now
                  enum:
                    - none
                    - equal
                    - before
                    - after
                    - now
                job_guid:
                  type: string
                  description: 'Must be a valid UUID.'
                  example: fc3769ed-9301-36b5-8197-b0efe0c5f410
                quantity:
                  type: integer
                  description: 'The quantity part of auto reminder. Must not be greater than 3600. Must be at least 0.'
                  example: 71
                unit:
                  type: string
                  description: 'The unit part of auto reminder.'
                  example: hours
                  enum:
                    - none
                    - minutes
                    - hours
                    - days
              required:
                - comparator
                - job_guid
                - quantity
                - unit
    parameters:
      -
        in: path
        name: job_guid
        description: "The GUID of the job. This can be derived from the\n     list of jobs returned from api <code>api/v1/jobs</code> (Get job information)."
        example: 03a71fd0-cc06-4432-bfef-44baa7a1d7c6.
        required: true
        schema:
          type: string
      -
        in: path
        name: id
        description: 'The ID of the reminder.'
        example: 18
        required: true
        schema:
          type: integer
  '/api/v1/jobs/{job_guid}/reminders/{reminder_id}':
    delete:
      summary: 'Delete a job reminder'
      operationId: deleteAJobReminder
      description: 'Delete a reminder related to a job.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example: {  }
                properties: {  }
      tags:
        - 'Job reminders'
    parameters:
      -
        in: path
        name: job_guid
        description: "The GUID of the job. This can be derived from the\n     list of jobs returned from api <code>api/v1/jobs</code> (Get job information)."
        example: 03a71fd0-cc06-4432-bfef-44baa7a1d7c6.
        required: true
        schema:
          type: string
      -
        in: path
        name: reminder_id
        description: 'The ID of the reminder.'
        example: 18
        required: true
        schema:
          type: integer
  '/api/v1/jobs/{job_guid}/notifications/history':
    get:
      summary: 'Get notifications history log'
      operationId: getNotificationsHistoryLog
      description: "Get list of all notification associated with the given job. This includes\nboth manual notification sent in past, auto reminders associated with\nthe job and cancelled reminders, etc."
      parameters:
        -
          in: query
          name: kind
          description: "The task category. The supported values\n     are [<i>assign-task</i>, <i>forward-task</i>, <i>quote-review-task</i>,\n     <i>review-task</i>, <i>revision-task</i> and <i>upload-task</i>]."
          example: molestiae
          required: false
          schema:
            type: string
            description: "The task category. The supported values\n     are [<i>assign-task</i>, <i>forward-task</i>, <i>quote-review-task</i>,\n     <i>review-task</i>, <i>revision-task</i> and <i>upload-task</i>]."
            example: molestiae
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                example:
                  -
                    cancelled: true
                    comparator: before
                    created_at: '2021-02-06T17:37:17.000Z'
                    date: '2021-12-01T14:54:22.000Z'
                    id: 1
                    is_auto: true
                    job_guid: 1ff38f4e-9c0d-4b1b-a665-3ef5aff896fb
                    quantity: 2
                    schedule: later
                    unit: days
                    updated_at: '2021-02-06T17:37:17.000Z'
                  -
                    cancelled: false
                    comparator: before
                    created_at: '2020-08-19T17:11:11.000Z'
                    date: '2021-12-02T14:54:22.000Z'
                    id: 1
                    is_auto: true
                    job_guid: 1ff38f4e-9c0d-4b1b-a665-3ef5aff896fb
                    quantity: 1
                    schedule: later
                    unit: days
                    updated_at: '2021-01-07T10:17:33.000Z'
                  -
                    cancelled: false
                    comparator: none
                    date: '2020-11-15T14:48:07.000Z'
                    id: -1
                    is_auto: false
                    job_guid: 1ff38f4e-9c0d-4b1b-a665-3ef5aff896fb
                    quantity: 0
                    schedule: later
                    unit: none
                  -
                    cancelled: false
                    comparator: none
                    date: '2020-11-13T02:43:28.000Z'
                    id: -1
                    is_auto: false
                    job_guid: 1ff38f4e-9c0d-4b1b-a665-3ef5aff896fb
                    quantity: 0
                    schedule: later
                    unit: none
                  -
                    cancelled: false
                    comparator: none
                    date: '2020-10-17T05:12:30.000Z'
                    id: -1
                    is_auto: false
                    job_guid: 1ff38f4e-9c0d-4b1b-a665-3ef5aff896fb
                    quantity: 0
                    schedule: later
                    unit: none
      tags:
        - 'Job notifications'
    parameters:
      -
        in: path
        name: job_guid
        description: "The GUID of the job. This can be derived from the\n     list of jobs returned from api 'api/v1/jobs'."
        example: dolorem
        required: true
        schema:
          type: string
  '/api/v1/jobs/{job_guid}/notifications/{kind}':
    get:
      summary: 'Get notification'
      operationId: getNotification
      description: 'Get notification associated with the given task for a job.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  comments: 'Review instructions'
                  recipient: 'tom.jerry@xyz,com'
                  reviewer:
                    -
                      email: reviewer1@design.com
                    -
                      email: reviewer2@design.com
                    -
                      group: 'External Review Group'
                  task:
                    category: review-task
                    due_at: '2021-01-28T15:42:36.000Z'
                    req_confirm: true
                    status: processing
                properties:
                  comments:
                    type: string
                    example: 'Review instructions'
                    description: "Past comment, if any, associated with this\n     notification."
                  recipient:
                    type: string
                    example: 'tom.jerry@xyz,com'
                    description: "This represent responsible customer or\n     partner assigned to the job. Customer are associated with job review\n     and partner are associated with job forward."
                  reviewer:
                    type: array
                    example:
                      -
                        email: reviewer1@design.com
                      -
                        email: reviewer2@design.com
                      -
                        group: 'External Review Group'
                    items:
                      type: object
                      properties:
                        email:
                          type: string
                          example: reviewer1@design.com
                  task:
                    type: object
                    properties:
                      category:
                        type: string
                        example: review-task
                        description: "The task category. The supported values\n     are [<i>assign-task</i>, <i>forward-task</i>, <i>quote-review-task</i>,\n     <i>review-task</i>, <i>revision-task</i>, and <i>upload-task</i>].\n     This is same as query parameters passed to call this API."
                      due_at:
                        type: string
                        example: '2021-01-28T15:42:36.000Z'
                        description: "Due date of the task to complete. Default\n     value is 'null'."
                      req_confirm:
                        type: boolean
                        example: true
                        description: "Whether required confirmation is\n     enabled or not."
                      status:
                        type: string
                        example: processing
                        description: "The status of the task. Valid values are\n     [<i>new</i>, <i>paused</i>, <i>processing</i>, and <i>done</i>].\n     Default value is 'new'."
      tags:
        - 'Job notifications'
    parameters:
      -
        in: path
        name: job_guid
        description: "The GUID of the job. This can be derived from the\n     list of jobs returned from api 'api/v1/jobs'."
        example: ipsum
        required: true
        schema:
          type: string
      -
        in: path
        name: kind
        description: "The task category. The supported values\n     are [<i>assign-task</i>, <i>forward-task</i>, <i>quote-review-task</i>,\n     <i>review-task</i>, <i>revision-task</i>, and <i>upload-task</i>]."
        example: recusandae
        required: true
        schema:
          type: string
  '/api/v1/jobs/{job_guid}/notifications':
    post:
      summary: 'Create a new manual notification'
      operationId: createANewManualNotification
      description: "This method can be used to create task and send manual notification for a\ngiven task of the job. If the given task already exists then it updates the\nexisting task with new information. Each reviewer has one to one map with\ntask that is created in the background. A task is created or updated for each\nreviewers based upon <code>reason</code> value.\n\n<aside class=\"notice info\">\n Through task API, only task can be created or updated or deleted. Task's\n <code>notify</code> then can be called separately to send manual notification.\n However, with this API not only task for multiple reviewers can be created\n but also manual notification can be sent.\n</aside>\n\n<aside class=\"warning\">\n Scheduling later is not implemented yet. Stay tune; it will be notified when\n this feature is available.\n</aside>\n\n<aside class=\"warning\">\n The <code>reason</code> has a profound effect on how tasks are treated. In\n case of <code>notify-task</code> and <code>update-task</code> supplied reviewers\n related task override existing reviewers task, if any, and old reviewer task\n are discarded. In case of <code>send-message</code>, message is sent to\n supplied reviewers without impacting existing tasks. However, in this case\n if reviewer's task does not exist then no new task is created or message sent.\n In case of reset-task the job is bring back to initial state where new process\n can be started again (e.g. resending the job for review, etc.). This is very\n useful in case folder as not only folder is participated in review process\n but also the files in the folder.\n</aside>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  comments: 'Review instructions'
                  reason: notify-task
                  recipient: 'tom.jerry@xyz,com'
                  reviewer:
                    -
                      email: reviewer1@design.com
                    -
                      email: reviewer2@design.com
                    -
                      group: 'External Review Group'
                  schedule: now
                  task:
                    category: review-task
                    due_at: '2021-01-28T15:42:36.000Z'
                    req_confirm: true
                    status: paused
                properties:
                  comments:
                    type: string
                    example: 'Review instructions'
                    description: 'The comment sent through this notification.'
                  reason:
                    type: string
                    example: notify-task
                    description: 'The notification reason. Refer to body parameters.'
                  recipient:
                    type: string
                    example: 'tom.jerry@xyz,com'
                    description: "This represent responsible customer or\n     partner assigned to the job. Customer are associated with job review\n     and partner are associated with job forward."
                  reviewer:
                    type: array
                    example:
                      -
                        email: reviewer1@design.com
                      -
                        email: reviewer2@design.com
                      -
                        group: 'External Review Group'
                    items:
                      type: object
                      properties:
                        email:
                          type: string
                          example: reviewer1@design.com
                  schedule:
                    type: string
                    example: now
                    description: "required When to schedule this reminder. The\n     valid values are [<i>now</i>, <i>later</i>]."
                  task:
                    type: object
                    properties:
                      category:
                        type: string
                        example: review-task
                        description: "The task category. The supported values\n     are [<i>assign-task</i>, <i>forward-task</i>, <i>quote-review-task</i>,\n     <i>review-task</i>, <i>revision-task</i>, and <i>upload-task</i>].\n     This is same as query parameters passed to call this API."
                      due_at:
                        type: string
                        example: '2021-01-28T15:42:36.000Z'
                        description: "Due date of the task to complete. Default\n     value is 'null'."
                      req_confirm:
                        type: boolean
                        example: true
                        description: "Whether required confirmation is\n     enabled or not."
                      status:
                        type: string
                        example: paused
                        description: "The status of the task. Valid values are\n     [<i>new</i>, <i>paused</i>, <i>processing</i>, and <i>done</i>].\n     Default value is 'new'."
      tags:
        - 'Job notifications'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                comments:
                  type: string
                  description: 'Comment, if any, associated with this notification.'
                  example: mollitia
                default:
                  type: object
                  description: "Use default for undefined properties, such as\n     <code>comments</code>, <code>task.due_at</code>, etc. It auto fill those\n     properties if not defined."
                  example: []
                  properties:
                    comments:
                      type: boolean
                      description: "Whether to use default comments, if\n     <code>comments</code> field is not defined."
                      example: true
                    reviewers:
                      type: boolean
                      description: "Whether to use existing reviewer, if\n     <code>reviewers</code> field is not defined."
                      example: false
                    task:
                      type: boolean
                      description: "Whether to use default value for <code>task</code>\n     sub-properties, if they are not defined."
                      example: false
                reason:
                  type: string
                  description: "The notification reason. It shall have one of the\n     following values:<br>\n     - notify-task: Send notification for given task (<i>default</i>).<br>\n     - reset-task: Reset all tasks and status, and bring to the initial state.<br>\n     - send-message: Send a simple message for given task.<br>\n     - update-task: Simply update the task without sending notification."
                  example: facere
                recipient:
                  type: email
                  description: 'The customer or partner to be updated in the job.'
                  example: a
                reviewers:
                  type: array
                  description: "List of reviewers for review task.\n     - If there is only one reviewer, then use the <code>recipient</code> field.\n     - Provide either an array of <code>email</code> or an array of <code>group</code>.\n     - A set of customers can be assigned a unique group ID in the customer record."
                  example:
                    - []
                  items:
                    type: object
                    properties:
                      email:
                        type: string
                        description: 'Must be a valid email address.'
                        example: demarco.fadel@example.net
                      group:
                        type: string
                        description: 'The group ID assigned in customer record.'
                        example: tempore
                schedule:
                  type: string
                  description: "When to schedule this reminder. The\n     valid values are [<i>now</i>, <i>later</i>]."
                  example: maiores
                task:
                  type: object
                  description: 'The task associated with this job.'
                  example: []
                  properties:
                    category:
                      type: string
                      description: "The task category. The supported values\n     are [<i>assign-task</i>, <i>forward-task</i>, <i>quote-review-task</i>,\n     <i>review-task</i>, <i>revision-task</i> and <i>upload-task</i>]."
                      example: ipsam
                    due_at:
                      type: string
                      description: "Due date of the task to complete. Default value\n     is 'null'."
                      example: velit
                    req_confirm:
                      type: boolean
                      description: 'Whether required confirmation is enabled or not.'
                      example: false
                    status:
                      type: string
                      description: "The status of the job. Valid values are [<i>new</i>,\n     <i>paused</i>, <i>processing</i>, and <i>done</i>]."
                      example: et
              required:
                - schedule
                - task
    parameters:
      -
        in: path
        name: job_guid
        description: 'Optional parameter. The GUID of the job'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: et
  '/api/v1/jobs/{job_guid}/action/{action}':
    post:
      summary: 'Apply a job action'
      operationId: applyAJobAction
      description: "Three kind of actions are supported at this moment:\n<ul>\n <li>\n  <b>inherit</b>: Make the children inherit parent folder properties, such as,\n  customer, due date, allow download, partner, show job specification,\n  show preflight report, etc.\n </li>\n <li>\n   <b>renew</b>: Renew the job (bring out of expire state).\n </li>\n <li>\n   <b>send-to-mis</b>: Send a order/quote to configured MIS system (deprecated).\n </li>\n</ul>\n\nIf job is expired, by calling the <i>renew</i> action, it bring the job to\nprevious state.\n\n<aside class=\"notice info\">\n  The <i>inherit</i> action is only applicable for <b>folder</b>.<br>\n  The <i>send-to-mis</i> action is only applicable for quote or order\n  <b>folder</b>.\n</aside>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  asg_email: tom.jerry@tj.com
                  asg_name: Tom
                  c_email: my.customer@domain.com
                  c_name: 'My Customer'
                  created_at: '2021-02-06T10:21:06.000Z'
                  deleted_at: null
                  due_at: null
                  guid: b7926eb4-6726-4917-abfd-e6eed3476e56
                  has_comment: false
                  is_folder: false
                  is_own: true
                  name: 'A Test File.png'
                  newly_assigned: false
                  parent_guid: f1096786-687e-4e40-87c7-bdb90ef631e7
                  path_url: 'https://www.good2gosoftware.com/review/file/b7926eb4-6726-4917-abfd-e6eed3476e56/document/A%20Test%20File.png?version=1'
                  size: 582817
                  status: new
                  type: image/png
                  updated_at: '2021-02-06T10:21:06.000Z'
                  version: 1
                properties:
                  asg_email:
                    type: string
                    example: tom.jerry@tj.com
                  asg_name:
                    type: string
                    example: Tom
                  c_email:
                    type: string
                    example: my.customer@domain.com
                  c_name:
                    type: string
                    example: 'My Customer'
                  created_at:
                    type: string
                    example: '2021-02-06T10:21:06.000Z'
                  deleted_at:
                    type: string
                    example: null
                  due_at:
                    type: string
                    example: null
                  guid:
                    type: string
                    example: b7926eb4-6726-4917-abfd-e6eed3476e56
                  has_comment:
                    type: boolean
                    example: false
                  is_folder:
                    type: boolean
                    example: false
                  is_own:
                    type: boolean
                    example: true
                  name:
                    type: string
                    example: 'A Test File.png'
                  newly_assigned:
                    type: boolean
                    example: false
                  parent_guid:
                    type: string
                    example: f1096786-687e-4e40-87c7-bdb90ef631e7
                  path_url:
                    type: string
                    example: 'https://www.good2gosoftware.com/review/file/b7926eb4-6726-4917-abfd-e6eed3476e56/document/A%20Test%20File.png?version=1'
                  size:
                    type: integer
                    example: 582817
                  status:
                    type: string
                    example: new
                  type:
                    type: string
                    example: image/png
                  updated_at:
                    type: string
                    example: '2021-02-06T10:21:06.000Z'
                  version:
                    type: integer
                    example: 1
        403:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    message: 'User access not permitted.'
                    status_code: 403
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                        example: 'User access not permitted.'
                      status_code:
                        type: integer
                        example: 403
        406:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    message: "Acceptable action ids are [ 'inherit', 'renew', 'send-to-mis' ]."
                    status_code: 406
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                        example: "Acceptable action ids are [ 'inherit', 'renew', 'send-to-mis' ]."
                      status_code:
                        type: integer
                        example: 406
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    message: 'Parent job is not a folder.'
                    status_code: 422
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                        example: 'Parent job is not a folder.'
                      status_code:
                        type: integer
                        example: 422
      tags:
        - 'Miscellaneous endpoints'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                ignore:
                  type: array
                  description: "List of properties that can be ignored when\n     <i>inherit</i> action is applied. The supported properties are [\n     <i>alt_text</i>, <i>c_email</i>, <i>due_at</i>, <i>p_email</i>, <i>cus_download</i>,\n     <i>show_job_spec</i>, and <i>show_preflight</i>]\n     <ul>\n       <li><b>alt_text</b>: Alternative text</li>\n       <li><b>c_email</b>: Customer email</li>\n       <li><b>due_at</b>: Deadline</li>\n       <li><b>p_email</b>: Partner email</li>\n       <li><b>cus_download</b>: Customer download</li>\n       <li><b>show_job_spec</b>: Show job specification</li>\n       <li><b>show_preflight</b>: Show preflight summary</li>\n     </ul>"
                  example:
                    - nam
                  items:
                    type: string
    parameters:
      -
        in: path
        name: job_guid
        description: "The guid of the job. This can be derived from the\n     list of jobs returned from api 'api/v1/jobs'."
        example: b507769f-f7ec-40d2-bd29-f3825adf83ca.
        required: true
        schema:
          type: string
      -
        in: path
        name: action
        description: "One of the value [ 'inherit', 'renew', 'send-to-mis' ]."
        example: inherit
        required: true
        schema:
          type: string
  '/api/v1/jobs/{job_guid}/changelogs':
    get:
      summary: 'Get job history'
      operationId: getJobHistory
      description: 'It returns array (list) of job history.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                example:
                  -
                    category: comments
                    comments: 'Update email send to test.good2go@gmail.com'
                    created_at: '2021-02-08T16:46:56.000Z'
                    from_email: test.good2go@yahoo.com
                    id: 702
                    job_guid: d92430f7-ba9c-490c-a070-4eeff0da9d54
                  -
                    category: notification.manual
                    comments: 'Reminder email sent to test.good2go@gmail.com'
                    created_at: '2021-02-08T15:20:44.000Z'
                    from_email: test.good2go@yahoo.com
                    id: 699
                    job_guid: d92430f7-ba9c-490c-a070-4eeff0da9d54
                  -
                    category: comments.approval
                    comments: '(Status: approved) Looks to be okay'
                    created_at: '2020-12-12T06:56:43.000Z'
                    from_email: test.good2go@yahoo.com
                    id: 481
                    job_guid: d92430f7-ba9c-490c-a070-4eeff0da9d54
                  -
                    category: comments.assigned
                    comments: '(Assigned to: team.member@gmail.com) Please add bleed to this job.'
                    created_at: '2020-12-10T18:21:11.000Z'
                    from_email: test.good2go@yahoo.com
                    id: 478
                    job_guid: d92430f7-ba9c-490c-a070-4eeff0da9d54
                  -
                    category: image-info
                    comments: '{"width":320,"height":215,"mime":"image/png","color":"UNKNOWN","bits":0}'
                    created_at: '2020-12-06T05:19:14.000Z'
                    from_email: test.good2go@yahoo.com
                    id: 448
                    job_guid: d92430f7-ba9c-490c-a070-4eeff0da9d54
                  -
                    category: comments
                    comments: 'A first version uploaded - 1'
                    created_at: '2020-12-06T05:19:14.000Z'
                    from_email: test.good2go@yahoo.com
                    id: 449
                    job_guid: d92430f7-ba9c-490c-a070-4eeff0da9d54
      tags:
        - 'Miscellaneous endpoints'
    parameters:
      -
        in: path
        name: job_guid
        description: "The guid of the job. This can be derived from the\n     list of jobs returned from api 'api/v1/jobs'."
        example: odit
        required: true
        schema:
          type: string
  '/api/v1/jobs/{job_guid}/changelogs/latest':
    get:
      summary: 'Get latest job comments'
      operationId: getLatestJobComments
      description: 'It returns latest job comment.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  category: comments.approval
                  comments: '(Status: approved) Looks to be okay'
                  created_at: '2020-12-12T06:56:43.000Z'
                  from_email: test.good2go@yahoo.com
                  id: 481
                  job_guid: d92430f7-ba9c-490c-a070-4eeff0da9d54
                properties:
                  category:
                    type: string
                    example: comments.approval
                    description: "The record category. This is used for internal\n     purpose and can change in future."
                  comments:
                    type: string
                    example: '(Status: approved) Looks to be okay'
                    description: 'The comments added to the job.'
                  created_at:
                    type: string
                    example: '2020-12-12T06:56:43.000Z'
                    description: "When this record was made in ISO UTC datetime\n     format."
                  from_email:
                    type: string
                    example: test.good2go@yahoo.com
                    description: "The email ID of Goo2Go user or customer who\n     created this record."
                  id:
                    type: integer
                    example: 481
                  job_guid:
                    type: string
                    example: d92430f7-ba9c-490c-a070-4eeff0da9d54
      tags:
        - 'Miscellaneous endpoints'
    parameters:
      -
        in: path
        name: job_guid
        description: "The guid of the job. This can be derived from the\n     list of jobs returned from api 'api/v1/jobs'."
        example: voluptas
        required: true
        schema:
          type: string
  '/api/v1/jobs/{job_guid}/locking':
    get:
      summary: 'Get lock state of a job'
      operationId: getLockStateOfAJob
      description: "<aside class=\"warning\">\n  Only file has lock or unlock state.\n</aside>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  guid: f6ac15ca-e4fa-4e1f-bb94-088ec04d7dab
                  locked: true
                properties:
                  guid:
                    type: string
                    example: f6ac15ca-e4fa-4e1f-bb94-088ec04d7dab
                  locked:
                    type: boolean
                    example: true
                    description: 'If this file is locked or not.'
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    message: 'Resource not found'
                    status_code: 404
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                        example: 'Resource not found'
                      status_code:
                        type: integer
                        example: 404
      tags:
        - 'Miscellaneous endpoints'
    post:
      summary: 'Lock or unlock a job'
      operationId: lockOrUnlockAJob
      description: "<aside class=\"notice info\">\n  Job can't be locked/unlocked through job update API call: <b>POST api/v1/jobs/{job}</b>.\n</aside>\n<aside class=\"warning\">\n  Only file can be locked or unlocked.\n</aside>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  ac:
                    can_assign: true
                    can_delete: true
                    can_download: false
                    can_edit: true
                    can_view: true
                    control_job: true
                    delete_options:
                      action: trash
                  asg_email: tom.jerry@tj.com
                  asg_name: Tom
                  c_email: my.customer@domain.com
                  c_name: 'My Customer'
                  created_at: '2021-02-06T10:21:06.000Z'
                  cus_download: true
                  deleted_at: null
                  due_at: null
                  guid: b7926eb4-6726-4917-abfd-e6eed3476e56
                  has_comment: false
                  is_folder: false
                  is_own: true
                  is_portal: false
                  is_watching: false
                  locked: false
                  more_info:
                    annotations:
                      annot_cnt: 0
                      annot_cnt_plus: false
                    pageCount: 1
                    pages:
                      -
                        bits: 0
                        color: UNKNOWN
                        height: 922
                        mime: image/png
                        width: 1616
                  name: 'A Test File.png'
                  newly_assigned: false
                  parent_guid: f1096786-687e-4e40-87c7-bdb90ef631e7
                  p_email: forward.partner@domain.com
                  path_url: 'https://www.good2gosoftware.com/review/file/b7926eb4-6726-4917-abfd-e6eed3476e56/document/A%20Test%20File.png?version=1'
                  p_name: 'DEF Printer'
                  size: 582817
                  source: in-app
                  status: new
                  type: image/png
                  updated_at: '2021-02-06T10:21:06.000Z'
                  version: 1
                properties:
                  ac:
                    type: object
                    properties:
                      can_assign:
                        type: boolean
                        example: true
                      can_delete:
                        type: boolean
                        example: true
                      can_download:
                        type: boolean
                        example: false
                      can_edit:
                        type: boolean
                        example: true
                      can_view:
                        type: boolean
                        example: true
                      control_job:
                        type: boolean
                        example: true
                      delete_options:
                        type: object
                        properties:
                          action:
                            type: string
                            example: trash
                  asg_email:
                    type: string
                    example: tom.jerry@tj.com
                  asg_name:
                    type: string
                    example: Tom
                  c_email:
                    type: string
                    example: my.customer@domain.com
                  c_name:
                    type: string
                    example: 'My Customer'
                  created_at:
                    type: string
                    example: '2021-02-06T10:21:06.000Z'
                  cus_download:
                    type: boolean
                    example: true
                  deleted_at:
                    type: string
                    example: null
                  due_at:
                    type: string
                    example: null
                  guid:
                    type: string
                    example: b7926eb4-6726-4917-abfd-e6eed3476e56
                  has_comment:
                    type: boolean
                    example: false
                  is_folder:
                    type: boolean
                    example: false
                  is_own:
                    type: boolean
                    example: true
                  is_portal:
                    type: boolean
                    example: false
                  is_watching:
                    type: boolean
                    example: false
                  locked:
                    type: boolean
                    example: false
                  more_info:
                    type: object
                    properties:
                      annotations:
                        type: object
                        properties:
                          annot_cnt:
                            type: integer
                            example: 0
                          annot_cnt_plus:
                            type: boolean
                            example: false
                      pageCount:
                        type: integer
                        example: 1
                      pages:
                        type: array
                        example:
                          -
                            bits: 0
                            color: UNKNOWN
                            height: 922
                            mime: image/png
                            width: 1616
                        items:
                          type: object
                          properties:
                            bits:
                              type: integer
                              example: 0
                            color:
                              type: string
                              example: UNKNOWN
                            height:
                              type: integer
                              example: 922
                            mime:
                              type: string
                              example: image/png
                            width:
                              type: integer
                              example: 1616
                  name:
                    type: string
                    example: 'A Test File.png'
                  newly_assigned:
                    type: boolean
                    example: false
                  parent_guid:
                    type: string
                    example: f1096786-687e-4e40-87c7-bdb90ef631e7
                  p_email:
                    type: string
                    example: forward.partner@domain.com
                  path_url:
                    type: string
                    example: 'https://www.good2gosoftware.com/review/file/b7926eb4-6726-4917-abfd-e6eed3476e56/document/A%20Test%20File.png?version=1'
                  p_name:
                    type: string
                    example: 'DEF Printer'
                  size:
                    type: integer
                    example: 582817
                  source:
                    type: string
                    example: in-app
                  status:
                    type: string
                    example: new
                  type:
                    type: string
                    example: image/png
                  updated_at:
                    type: string
                    example: '2021-02-06T10:21:06.000Z'
                  version:
                    type: integer
                    example: 1
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    message: 'Resource not found'
                    status_code: 404
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                        example: 'Resource not found'
                      status_code:
                        type: integer
                        example: 404
      tags:
        - 'Miscellaneous endpoints'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                locked:
                  type: boolean
                  description: ''
                  example: true
              required:
                - locked
    parameters:
      -
        in: path
        name: job_guid
        description: "The guid of the job. This can be derived from the\n     list of jobs returned from api 'api/v1/jobs'."
        example: commodi
        required: true
        schema:
          type: string
  '/api/v1/jobs/{job_guid}/send/update':
    post:
      summary: 'Send status update'
      operationId: sendStatusUpdate
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  ac:
                    can_assign: true
                    can_delete: true
                    can_download: false
                    can_edit: true
                    can_view: true
                    control_job: true
                    delete_options:
                      action: trash
                  asg_email: tom.jerry@tj.com
                  asg_name: Tom
                  c_email: my.customer@domain.com
                  c_name: 'My Customer'
                  created_at: '2021-02-06T10:21:06.000Z'
                  cus_download: true
                  deleted_at: null
                  due_at: null
                  guid: b7926eb4-6726-4917-abfd-e6eed3476e56
                  has_comment: false
                  is_folder: false
                  is_own: true
                  is_portal: false
                  is_watching: false
                  locked: false
                  more_info:
                    annotations:
                      annot_cnt: 0
                      annot_cnt_plus: false
                    pageCount: 1
                    pages:
                      -
                        bits: 0
                        color: UNKNOWN
                        height: 922
                        mime: image/png
                        width: 1616
                  name: 'A Test File.png'
                  newly_assigned: false
                  parent_guid: f1096786-687e-4e40-87c7-bdb90ef631e7
                  p_email: forward.partner@domain.com
                  path_url: 'https://www.good2gosoftware.com/review/file/b7926eb4-6726-4917-abfd-e6eed3476e56/document/A%20Test%20File.png?version=1'
                  p_name: 'DEF Printer'
                  size: 582817
                  source: in-app
                  status: new
                  type: image/png
                  updated_at: '2021-02-06T10:21:06.000Z'
                  version: 1
                properties:
                  ac:
                    type: object
                    properties:
                      can_assign:
                        type: boolean
                        example: true
                      can_delete:
                        type: boolean
                        example: true
                      can_download:
                        type: boolean
                        example: false
                      can_edit:
                        type: boolean
                        example: true
                      can_view:
                        type: boolean
                        example: true
                      control_job:
                        type: boolean
                        example: true
                      delete_options:
                        type: object
                        properties:
                          action:
                            type: string
                            example: trash
                  asg_email:
                    type: string
                    example: tom.jerry@tj.com
                  asg_name:
                    type: string
                    example: Tom
                  c_email:
                    type: string
                    example: my.customer@domain.com
                  c_name:
                    type: string
                    example: 'My Customer'
                  created_at:
                    type: string
                    example: '2021-02-06T10:21:06.000Z'
                  cus_download:
                    type: boolean
                    example: true
                  deleted_at:
                    type: string
                    example: null
                  due_at:
                    type: string
                    example: null
                  guid:
                    type: string
                    example: b7926eb4-6726-4917-abfd-e6eed3476e56
                  has_comment:
                    type: boolean
                    example: false
                  is_folder:
                    type: boolean
                    example: false
                  is_own:
                    type: boolean
                    example: true
                  is_portal:
                    type: boolean
                    example: false
                  is_watching:
                    type: boolean
                    example: false
                  locked:
                    type: boolean
                    example: false
                  more_info:
                    type: object
                    properties:
                      annotations:
                        type: object
                        properties:
                          annot_cnt:
                            type: integer
                            example: 0
                          annot_cnt_plus:
                            type: boolean
                            example: false
                      pageCount:
                        type: integer
                        example: 1
                      pages:
                        type: array
                        example:
                          -
                            bits: 0
                            color: UNKNOWN
                            height: 922
                            mime: image/png
                            width: 1616
                        items:
                          type: object
                          properties:
                            bits:
                              type: integer
                              example: 0
                            color:
                              type: string
                              example: UNKNOWN
                            height:
                              type: integer
                              example: 922
                            mime:
                              type: string
                              example: image/png
                            width:
                              type: integer
                              example: 1616
                  name:
                    type: string
                    example: 'A Test File.png'
                  newly_assigned:
                    type: boolean
                    example: false
                  parent_guid:
                    type: string
                    example: f1096786-687e-4e40-87c7-bdb90ef631e7
                  p_email:
                    type: string
                    example: forward.partner@domain.com
                  path_url:
                    type: string
                    example: 'https://www.good2gosoftware.com/review/file/b7926eb4-6726-4917-abfd-e6eed3476e56/document/A%20Test%20File.png?version=1'
                  p_name:
                    type: string
                    example: 'DEF Printer'
                  size:
                    type: integer
                    example: 582817
                  source:
                    type: string
                    example: in-app
                  status:
                    type: string
                    example: new
                  type:
                    type: string
                    example: image/png
                  updated_at:
                    type: string
                    example: '2021-02-06T10:21:06.000Z'
                  version:
                    type: integer
                    example: 1
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    message: 'Resource not found'
                    status_code: 404
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                        example: 'Resource not found'
                      status_code:
                        type: integer
                        example: 404
      tags:
        - 'Miscellaneous endpoints'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                label:
                  type: string
                  description: 'Assign one of the user defined label. Must not be greater than 64 characters.'
                  example: 'Send for review'
              required:
                - label
    parameters:
      -
        in: path
        name: job_guid
        description: ''
        example: 00028adf-55d1-4b74-a511-0db9bfd1b645
        required: true
        schema:
          type: string
  /api/v1/analytics/jobs:
    get:
      summary: 'Get analytical data'
      operationId: getAnalyticalData
      description: 'Return consolidated data of user of all jobs.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  approved: 1
                  created_at: '2021-01-24T17:56:03.000Z'
                  data_size_mb: '6852489'
                  due_cnt: 0
                  guid: 63c56c5e-3aa6-4768-bbd8-01c0b4e5ccaa
                  id: 1
                  live_files: 24
                  locked_at: '2021-01-25T14:13:10.000Z'
                  name: 'Large Files Test'
                  processed: 40
                  rejected: 2
                  signed_at: '2021-02-12T07:41:37.000Z'
                  updated_at: '2021-02-08T15:20:44.000Z'
                properties:
                  approved:
                    type: integer
                    example: 1
                    description: 'Number of files or folders approved.'
                  created_at:
                    type: string
                    example: '2021-01-24T17:56:03.000Z'
                  data_size_mb:
                    type: string
                    example: '6852489'
                    description: 'Size of memory usage in mega bytes (MB).'
                  due_cnt:
                    type: integer
                    example: 0
                    description: 'Number of files due today.'
                  guid:
                    type: string
                    example: 63c56c5e-3aa6-4768-bbd8-01c0b4e5ccaa
                  id:
                    type: integer
                    example: 1
                  live_files:
                    type: integer
                    example: 24
                    description: 'Total number of live files at this moment.'
                  locked_at:
                    type: string
                    example: '2021-01-25T14:13:10.000Z'
                    description: 'The last time when user account was locked.'
                  name:
                    type: string
                    example: 'Large Files Test'
                    description: 'The name of the parent folder (root).'
                  processed:
                    type: integer
                    example: 40
                    description: 'Number of files processed by user so far.'
                  rejected:
                    type: integer
                    example: 2
                    description: 'Number of files or folders rejected so far.'
                  signed_at:
                    type: string
                    example: '2021-02-12T07:41:37.000Z'
                    description: "Last date on which user has successfully login\n     to Good2Go review application (in ISO UTC datetime format)."
                  updated_at:
                    type: string
                    example: '2021-02-08T15:20:44.000Z'
      tags:
        - 'Miscellaneous endpoints'
  '/api/v1/analytics/jobs/{job_guid}':
    get:
      summary: 'Get analytical data for files in a folder'
      operationId: getAnalyticalDataForFilesInAFolder
      description: 'Return consolidated data of user for jobs in a given folder.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  approved: 1
                  created_at: '2021-01-24T17:56:03.000Z'
                  data_size_mb: '6852489'
                  due_cnt: 0
                  guid: 63c56c5e-3aa6-4768-bbd8-01c0b4e5ccaa
                  id: 1
                  live_files: 24
                  locked_at: '2021-01-25T14:13:10.000Z'
                  name: 'Large Files Test'
                  processed: 40
                  rejected: 2
                  signed_at: '2021-02-12T07:41:37.000Z'
                  updated_at: '2021-02-08T15:20:44.000Z'
                properties:
                  approved:
                    type: integer
                    example: 1
                    description: 'Number of files or folders approved.'
                  created_at:
                    type: string
                    example: '2021-01-24T17:56:03.000Z'
                  data_size_mb:
                    type: string
                    example: '6852489'
                    description: 'Size of memory usage in mega bytes (MB).'
                  due_cnt:
                    type: integer
                    example: 0
                    description: 'Number of files due today.'
                  guid:
                    type: string
                    example: 63c56c5e-3aa6-4768-bbd8-01c0b4e5ccaa
                    description: 'The guid of parent folder. Null in case of root folder.'
                  id:
                    type: integer
                    example: 1
                  live_files:
                    type: integer
                    example: 24
                    description: 'Total number of live files at this moment.'
                  locked_at:
                    type: string
                    example: '2021-01-25T14:13:10.000Z'
                    description: 'The last time when user account was locked.'
                  name:
                    type: string
                    example: 'Large Files Test'
                    description: 'The name of the parent folder.'
                  processed:
                    type: integer
                    example: 40
                    description: 'Number of files processed by user so far.'
                  rejected:
                    type: integer
                    example: 2
                    description: 'Number of files or folders rejected so far.'
                  signed_at:
                    type: string
                    example: '2021-02-12T07:41:37.000Z'
                    description: "Last date on which user has successfully login\n     to Good2Go review application (in ISO UTC datetime format)."
                  updated_at:
                    type: string
                    example: '2021-02-08T15:20:44.000Z'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    message: 'This job is not a folder.'
                    status_code: 422
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                        example: 'This job is not a folder.'
                      status_code:
                        type: integer
                        example: 422
      tags:
        - 'Miscellaneous endpoints'
    parameters:
      -
        in: path
        name: job_guid
        description: "Optional parameter. The guid of the folder. This can be derived from the\n     list of jobs returned from api 'api/v1/jobs'."
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: numquam
tags:
  -
    name: 'Job management'
    description: "\nAPIs for managing jobs and job information."
  -
    name: 'File upload'
    description: "\nAPIs to upload a new document or update an existing document in a job."
  -
    name: 'File download'
    description: ''
  -
    name: 'Job tasks'
    description: "\nAPIs to send, view, update or delete job related tasks and reminders.\n\nThere are several different kind of tasks:\n  - assign-task (for internal colleague in a team)\n  - forward-task (for external partner)\n  - quote-review-task (for external print buyer)\n  - review-task (for external print buyer)\n  - revision-task (for external print buyer)\n  - upload-task (for external print buyer)\n\n<aside class=\"warning\">\n  Auto reminders are controlled by user settings. Update user setting to setup\n  auto reminders.\n</aside>"
  -
    name: 'Job reminders'
    description: "\nAPIs to list, view, update or delete job specific reminder set. This set will be\nused by various tasks to send auto reminders based upon task due date.\n\n<aside class=\"warning\">\n  Auto reminders applicable to all jobs are controlled by user settings. Update\n  user settings to setup auto reminders for all jobs.\n</aside>"
  -
    name: 'Job notifications'
    description: "\nAPIs to send job notifications for review and approve document, to upload a new\ndocument or to update a file revision or job assignment. There are six different\nkinds of task:\n     - assign-task (for internal colleague in a team)\n     - forward-task (for external partner)\n     - quote-review-task (for external print buyer)\n     - review-task (for external print buyer)\n     - revision-task (for external print buyer)\n     - upload-task (for external print buyer)\n\n<aside class=\"notice info\">\n Notification is the simplest mechanism to create/update tasks. Sending notification\n or setting up reminder for a given tasks involve several operations, example,\n setting up a target customer or partner of the job, creating task, etc. Notification\n API simplify that process. It is easier to add or remove target reviewer for given\n task through this notification method.\n</aside>\n<aside class=\"warning\">\n  Auto reminders are controlled by user settings. Update user setting to setup\n  auto reminders.\n</aside>"
  -
    name: 'Miscellaneous endpoints'
    description: ''
components:
  securitySchemes:
    default:
      type: http
      scheme: bearer
      description: 'The authentication key can be retrieved after logging to Good2Go Review application. Visit to integration page, go to API Keys section, register an application name and click <b>Create API token</b>.'
security:
  -
    default: []
