openapi: 3.0.0
info:
  version: 1.0.0
  title: DVIDS Content Submission API
  license:
    name: MIT
servers:
- url: https://submitapi.dvidshub.net
  description: Production
security:
- DVIDS:
  - basic
  - email
  - upload
components:
  securitySchemes:
    DVIDS:
      type: oauth2
      description: This API uses OAuth2 with the authorizationCode grant flow. 
        [More info](https://api.dvidshub.net/docs/authentication)
      flows:
        authorizationCode:
          authorizationUrl: https://api.dvidshub.net/auth/authorize
          tokenUrl: https://api.dvidshub.net/auth/access_token
          scopes:
            basic: read your basic information
            email: read your email address
            upload: upload assets on your behalf
  responses:
    AccessDenied: &id007
      description: Access is denied to the requested resource.
      content:
        application/vnd.api+json:
          schema: &id001
            type: object
            required:
            - errors
            properties:
              errors:
                type: array
                items:
                  type: object
                  properties:
                    title:
                      type: string
                    detail:
                      type: string
                    links:
                      type: object
                      properties:
                        about:
                          type: object
                          properties:
                            href:
                              type: string
                              format: uri
                            meta:
                              type: object
    BadRequest: &id005
      description: The request payload is not correctly formed.
      content:
        application/vnd.api+json:
          schema: *id001
    Conflict: &id009
      description: The resource is in a conflicted state with the request.
      content:
        application/vnd.api+json:
          schema: *id001
    NotFound: &id003
      description: The object identified by path parameters does not exist.
      content:
        application/vnd.api+json:
          schema: *id001
    Unauthorized:
      description: Access to the requested resource is denied. Check the 
        authorization header.
      content:
        application/vnd.api+json:
          schema: *id001
    default:
      description: unexpected error
      content:
        application/vnd.api+json:
          schema: *id001
  schemas:
    Audio: &id008
      description: "An audio resource is a collection of metadata and an uploaded
        file submitted together for approval and publishing.\nIt supports the following
        file types:\n  - MP3"
      type: object
      required:
      - id
      - type
      - attributes
      - relationships
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - audio
        attributes:
          type: object
          required:
          - title
          - description
          - created_at
          - country
          properties:
            category:
              type: string
              description: Category of the audio content
              enum:
              - b-roll
              - briefings
              - greetings
              - interviews
              - newscasts
              - recording
            title:
              description: Headline to introduce audio clip. Emoji and other 
                pictographic symbols are not permitted.
              type: string
              maxLength: 255
              pattern: 
                ^(?!.*[\U0001D400-\U0001D7FF])[^\x00-\x09\x0b\x0c\x0e-\x1f\x7f-\x9f]+$
            description:
              description: Longer description of the audio clip. Emoji and other
                pictographic symbols are not permitted.
              type: string
              maxLength: 65535
              pattern: 
                ^(?!.*[\U0001D400-\U0001D7FF])[^\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\x9f]+$
            instructions:
              description: Instructions for release authority and review 
                handling.
              type: string
              maxLength: 65535
            notes:
              description: Notes associated with the audio clip. For internal 
                use only.
              type: string
              maxLength: 65535
            tags:
              type: array
              description: "Array of tag strings pertaining to the media asset. Useful
                for identifying topics, persons, subjects,\nand objects."
              items:
                type: string
                maxLength: 100
                example: UH60 Blackhawk
            created_at:
              type: string
              description: Date and time (including timezone) when the audio 
                clip was captured.
              format: date-time
            subdiv:
              type: string
              maxLength: 50
              description: State/province where audio clip was captured, if 
                applicable.
              example: Washington
            country:
              type: string
              maxLength: 2
              description: ISO-3166-2 country code where audio clip was 
                captured. See (https://en.wikipedia.org/wiki/ISO_3166-2).
              example: US
            city:
              type: string
              maxLength: 75
              description: Name of city where audio clip was captured.
            status:
              type: string
              readOnly: true
              description: Status of the audio clip in the system
              enum:
              - unpublished
              - published
              - uploaded
              - needs-approval
            id3_artist:
              type: string
              maxLength: 100
              description: Name of the artist.
            id3_album:
              type: string
              maxLength: 100
              description: Name of the album of the audio.
            id3_genre:
              type: string
              maxLength: 100
              description: Genre of the audio.
            id3_composer:
              type: string
              maxLength: 100
              description: Name of the composer of the audio.
            id3_conductor:
              type: string
              maxLength: 100
              description: Name of the conductor of the audio.
            id3_track:
              type: integer
              maxLength: 2
              description: Track number of the audio.
            id3_disc_number:
              type: integer
              maxLength: 2
              description: Disc number of the audio.
            id3_year:
              type: integer
              maxLength: 4
              description: Year of the audio.
        relationships:
          type: object
          required:
          - batch_upload
          - service_unit
          properties:
            authors:
              description: Optional array of Authors to credit for this work.
              type: object
              required:
              - data
              properties:
                data:
                  type: array
                  items:
                    type: object
                    required:
                    - id
                    - type
                    properties:
                      id:
                        type: string
                      type:
                        enum:
                        - author
            batch:
              description: The current `Batch` associated with the media asset.
              type: object
              readOnly: true
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - batch
            batch_upload:
              description: "A completed `BatchUpload` or `BatchMultipartUpload` object.
                This identifies the file\nto associate with the metadata."
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - batch-upload
                      - batch-multipart-upload
            hometowns:
              description: Optional array of Location indicating the hometowns 
                of the subject(s)
              type: object
              required:
              - data
              properties:
                data:
                  type: array
                  items:
                    type: object
                    required:
                    - id
                    - type
                    properties:
                      id:
                        type: string
                      type:
                        enum:
                        - location
            themes:
              description: Optional array of Theme to associate with this work.
              type: object
              required:
              - data
              properties:
                data:
                  type: array
                  items:
                    type: object
                    required:
                    - id
                    - type
                    properties:
                      id:
                        type: string
                      type:
                        enum:
                        - theme
            service_unit:
              description: Affiliated service unit
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - service-unit
    Author: &id002
      description: Represents an author of the submitted content who will 
        receive credit for publishing the media asset.
      type: object
      required:
      - id
      - type
      - attributes
      - relationships
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - author
        attributes:
          type: object
          required:
          - name
          - vision_id
          properties:
            name:
              type: string
              example: John Smith
              readOnly: true
            job_grade:
              description: Current job grade or rank held by author
              readOnly: true
              type: object
              required:
              - name
              - associated_press_name
              - abbreviation
              properties:
                name:
                  type: string
                  example: Captain
                  readOnly: true
                associated_press_name:
                  type: string
                  example: Capt.
                  readOnly: true
                abbreviation:
                  type: string
                  example: CPT
                  readOnly: true
                branch:
                  type: string
                  enum:
                  - army
                  - navy
                  - air-force
                  - marines
                  - coast-guard
                  - joint
                  example: marines
                  readOnly: true
                  nullable: true
                  description: Branch of US Armed Forces slug for this rank. 
                    `Null` if this does not apply.
                job_grade:
                  description: U.S. Government job grade (JG). See 
                    (https://en.wikipedia.org/wiki/General_Schedule_(US_civil_service_pay_scale)).
                  type: string
                  example: O3
                  readOnly: true
                  nullable: true
                nato_code:
                  description: NATO job code. See 
                    (https://en.wikipedia.org/wiki/Ranks_and_insignia_of_NATO).
                  type: string
                  example: OF-2
                  readOnly: true
                  nullable: true
                country_code:
                  description: ISO-2 country code of applicable country (if 
                    any).
                  type: string
                  example: US
                  readOnly: true
                  nullable: true
            vision_id:
              description: DVIRC issued unique identifier for author
              type: string
              example: HZ1234
              readOnly: true
              nullable: true
        relationships:
          type: object
          readOnly: true
          required:
          - service_units
          properties:
            service_units:
              description: Affiliated service units
              type: object
              readOnly: true
              required:
              - data
              properties:
                data:
                  type: array
                  items:
                    type: object
                    required:
                    - id
                    - type
                    properties:
                      id:
                        type: string
                      type:
                        enum:
                        - service-unit
    AuthorVirin: &id004
      description: Represents a VIRIN generated on behalf of an Author
      type: object
      required:
      - id
      - type
      - attributes
      - relationships
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - author-virin
        attributes:
          type: object
          required:
          - date
          properties:
            date:
              type: string
              description: Date and time (including timezone) when the media was
                captured.
              format: date-time
            virin:
              type: string
              readOnly: true
              description: "Visual imagery record identification number in compliance
                with DoD Visual Information Style Guide.\nSee (https://www.dimoc.mil/Portals/0/Documents/DoD_VISG_20200128_8.5x11_Format%201-24-2023.pdf)."
              example: 160323-O-AB123-1001
        relationships:
          type: object
          readOnly: true
          required:
          - author
          properties:
            author:
              description: Author associated with the generated VIRIN
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - author
    Batch: &id006
      description: "A batch is a collection of files submitted together for approval
        and publishing. To upload a file up to 5GB in a\nsingle PUT request, use `createBatchUpload`.
        For files between 5GB and 5TB use `createBatchMultipartUpload`."
      type: object
      required:
      - id
      - type
      - attributes
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - batch
        attributes:
          type: object
          properties:
            created_at:
              type: string
              format: date-time
              readOnly: true
            closed_at:
              type: string
              format: date-time
              readOnly: true
              nullable: true
            closed:
              type: boolean
            send_confirmation_email:
              description: "If false, a confirmation email will not be sent to the
                user when the batch is closed.\nDefaults to true. This parameter is
                only used when closing a batch via PATCH."
              type: boolean
        relationships:
          type: object
          readOnly: true
          properties:
            audio:
              description: Audio associated with the batch
              type: object
              readOnly: true
              required:
              - data
              properties:
                data:
                  type: array
                  items:
                    type: object
                    required:
                    - id
                    - type
                    properties:
                      id:
                        type: string
                      type:
                        enum:
                        - audio
                links:
                  type: object
                  readOnly: true
                  required:
                  - related
                  properties:
                    related:
                      type: string
                      format: uri
            graphic:
              description: Graphics associated with the batch
              type: object
              readOnly: true
              required:
              - data
              properties:
                data:
                  type: array
                  items:
                    type: object
                    required:
                    - id
                    - type
                    properties:
                      id:
                        type: string
                      type:
                        enum:
                        - graphic
                links:
                  type: object
                  readOnly: true
                  required:
                  - related
                  properties:
                    related:
                      type: string
                      format: uri
            multipart-upload:
              description: Multipart Uploads associated with the batch
              type: object
              readOnly: true
              required:
              - data
              properties:
                data:
                  type: array
                  items:
                    type: object
                    required:
                    - id
                    - type
                    properties:
                      id:
                        type: string
                      type:
                        enum:
                        - batch-multipart-upload
                links:
                  type: object
                  readOnly: true
                  required:
                  - related
                  properties:
                    related:
                      type: string
                      format: uri
            news:
              description: News associated with the batch
              type: object
              readOnly: true
              required:
              - data
              properties:
                data:
                  type: array
                  items:
                    type: object
                    required:
                    - id
                    - type
                    properties:
                      id:
                        type: string
                      type:
                        enum:
                        - news
                links:
                  type: object
                  readOnly: true
                  required:
                  - related
                  properties:
                    related:
                      type: string
                      format: uri
            photo:
              description: Photos associated with the batch
              type: object
              readOnly: true
              required:
              - data
              properties:
                data:
                  type: array
                  items:
                    type: object
                    required:
                    - id
                    - type
                    properties:
                      id:
                        type: string
                      type:
                        enum:
                        - photo
                links:
                  type: object
                  readOnly: true
                  required:
                  - related
                  properties:
                    related:
                      type: string
                      format: uri
            publication-issue:
              description: Publication Issues associated with the batch
              type: object
              readOnly: true
              required:
              - data
              properties:
                data:
                  type: array
                  items:
                    type: object
                    required:
                    - id
                    - type
                    properties:
                      id:
                        type: string
                      type:
                        enum:
                        - publication-issue
                links:
                  type: object
                  readOnly: true
                  required:
                  - related
                  properties:
                    related:
                      type: string
                      format: uri
            upload:
              description: Uploads associated with the batch
              type: object
              readOnly: true
              required:
              - data
              properties:
                data:
                  type: array
                  items:
                    type: object
                    required:
                    - id
                    - type
                    properties:
                      id:
                        type: string
                      type:
                        enum:
                        - batch-upload
                links:
                  type: object
                  readOnly: true
                  required:
                  - related
                  properties:
                    related:
                      type: string
                      format: uri
            video:
              description: Videos associated with the batch
              type: object
              readOnly: true
              required:
              - data
              properties:
                data:
                  type: array
                  items:
                    type: object
                    required:
                    - id
                    - type
                    properties:
                      id:
                        type: string
                      type:
                        enum:
                        - video
                links:
                  type: object
                  readOnly: true
                  required:
                  - related
                  properties:
                    related:
                      type: string
                      format: uri
    BatchUpload: &id019
      description: "A batch upload is a set of information to upload a file for submission.
        The file must be less than `max_file_size`\nbytes to fit into a single upload.
        For larger files use `createBatchMultipartUpload`. The upload URL will expire\n\
        at the date and time indicated in `expires_at`, so you should request the
        creation of a new\nbatch upload just-in-time to begin the upload process."
      type: object
      required:
      - id
      - type
      - attributes
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - batch-upload
        attributes:
          type: object
          properties:
            expires_at:
              type: string
              format: date-time
              readOnly: true
            max_file_size:
              description: "Maximum file size (in bytes) supported by this `upload_url`.
                For larger files use\n`createBatchMultipartUpload`."
              type: integer
              format: int32
              readOnly: true
            use_cdn:
              type: boolean
              description: "Use a global CDN acceleration endpoint for upload. Defaults
                to `true`. Can be disabled if it\nimpacts upload performance negatively."
              default: true
            http_method:
              type: string
              enum:
              - POST
              - PUT
              readOnly: true
            upload_url:
              description: "Make a request to this URL with the file to be uploaded.
                If the `http_method` is POST, include the\nparameters from `multipart_form_upload_params`."
              type: string
              format: uri
              readOnly: true
            multipart_form_upload_params:
              type: object
              description: The properties should be sent as parameters in each 
                POST request to the `upload_url`.
              readOnly: true
              nullable: true
    BatchMultipartUpload: &id020
      description: "A batch multipart upload is a set of information to upload a file
        requiring multiple parts for submission. Use\n`createBatchMultipartUploadPart`
        for each part."
      type: object
      required:
      - id
      - type
      - attributes
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - batch-multipart-upload
        attributes:
          type: object
          properties:
            max_file_size:
              description: Maximum file total size (in bytes) supported by this 
                upload. Files in excess of this size will be rejected.
              type: integer
              format: int64
              readOnly: true
            max_part_size:
              description: "Maximum file part size (in bytes) supported by this upload.
                Each part uploaded via\n`createBatchMultipartUploadPart` must be less
                than or equal to this size."
              type: integer
              format: int32
              readOnly: true
            content_type:
              description: Mime type of the file to be uploaded. This will 
                determine which asset type the file is associated with.
              type: string
              writeOnly: true
              example: video/mp4
            parts:
              description: "Array of objects to verify the status of each part.\n\
                Required for `completeBatchMultipartUpload` operation."
              type: array
              items:
                type: object
                properties:
                  etag:
                    description: ETag response header returned from part upload 
                      for this part.
                    type: string
                  part_number:
                    description: Part number corresponding to `ETag`.
                    type: integer
                    format: int32
                    minimum: 1
                    maximum: 10000
                  size:
                    description: Size of the part in bytes.
                    type: integer
                    format: int64
                    readOnly: true
    BatchMultipartUploadPart: &id021
      description: "A batch multipart upload part is a set of information to upload
        a file part for submission. Use\n`createBatchMultipartUpload` to initiate
        a batch multipart upload."
      type: object
      required:
      - id
      - type
      - attributes
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - batch-multipart-upload-part
        attributes:
          type: object
          required:
          - part_number
          properties:
            expires_at:
              type: string
              format: date-time
              readOnly: true
            max_file_size:
              description: Maximum file part size (in bytes) supported by this 
                `upload_url`.
              type: integer
              format: int32
              readOnly: true
            part_number:
              type: integer
              format: int32
              description: Part number to uniquely identify this part. Must be 
                between `minimum` and `maximum`, inclusive.
              minimum: 1
              maximum: 10000
            upload_url:
              description: Make a POST request to this URL with the 
                `upload_params` and file part to be uploaded.
              type: string
              format: uri
              readOnly: true
    Country: &id022
      description: Represents a country known to the DVIDS system for the 
        purpose of designating media asset location
      type: object
      required:
      - id
      - type
      - attributes
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - country
        attributes:
          type: object
          properties:
            name:
              type: string
              description: The common or short-form name of this country
              readOnly: true
              example: Mexico
            full_name:
              type: string
              description: The long or official name of this country
              readOnly: true
              example: United Mexican States
            iso_3166:
              type: string
              maxLength: 2
              description: The ISO-2 code for this country
              readOnly: true
              example: MX
            iso_3166_3:
              type: string
              maxLength: 3
              description: The ISO-3 code for this country
              readOnly: true
              example: MEX
    CountrySubdiv: &id023
      description: "Represents a country's subdivision (such as state or province)
        known to the DVIDS system for the purpose of\ndesignating media asset location"
      type: object
      required:
      - id
      - type
      - attributes
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - country-subdiv
        attributes:
          type: object
          properties:
            name:
              type: string
              description: The common or short-form name of this subdiv
              readOnly: true
              example: Texas
            full_name:
              type: string
              description: The long or official name of this subdiv
              readOnly: true
              example: The Republic of Texas
            type:
              type: string
              enum:
              - State
              - Province
              description: The type of subdiv
              readOnly: true
    Document: &id010
      description: "A Document is a collection of metadata and an uploaded file submitted
        together for approval and publishing.\nIt supports the following file types:\n\
        \  - PDF"
      type: object
      required:
      - id
      - type
      - attributes
      - relationships
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - document
        attributes:
          type: object
          required:
          - title
          - description
          - instructions
          - created_at
          properties:
            title:
              description: Headline to introduce document. Emoji and other 
                pictographic symbols are not permitted.
              type: string
              maxLength: 255
              pattern: 
                ^(?!.*[\U0001D400-\U0001D7FF])[^\x00-\x09\x0b\x0c\x0e-\x1f\x7f-\x9f]+$
            description:
              description: Longer description of the document. Emoji and other 
                pictographic symbols are not permitted.
              type: string
              maxLength: 65535
              pattern: 
                ^(?!.*[\U0001D400-\U0001D7FF])[^\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\x9f]+$
            instructions:
              description: Instructions for release authority and review 
                handling.
              type: string
              maxLength: 65535
            tags:
              type: array
              description: "Array of tag strings pertaining to the media asset. Useful
                for identifying topics, persons, subjects,\nand objects."
              items:
                type: string
                maxLength: 100
                example: UH60 Blackhawk
            created_at:
              type: string
              description: Date and time (including timezone) when the document 
                was created.
              format: date-time
            status:
              type: string
              readOnly: true
              description: Status of the document in the system
              enum:
              - uploaded
              - pending-processing
              - needs-approval
              - published
              - archived
            thumbnail_url_template:
              type: string
              format: uri-template
              readOnly: true
              description: "A URI template for a thumbnail of the document. Replace
                {thumbnailSpec} with the size string required. Note that\nthe URI
                will return 404 until the batch is closed and the document has been
                processed. For example: 150x160_q95."
        relationships:
          type: object
          required:
          - batch_upload
          - category
          - service_unit
          properties:
            batch:
              description: The current `Batch` associated with the media asset.
              type: object
              readOnly: true
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - batch
            batch_upload:
              description: "A completed `BatchUpload` or `BatchMultipartUpload` object.
                This identifies the file\nto associate with the metadata."
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - batch-upload
                      - batch-multipart-upload
            category:
              description: A `DocumentCategory` for this document
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - document-category
            service_unit:
              description: Affiliated service unit
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - service-unit
    DocumentCategory: &id024
      description: Represents a logical category for documents
      type: object
      required:
      - id
      - type
      - attributes
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - document-category
        attributes:
          type: object
          properties:
            name:
              type: string
              description: The name of the category
              readOnly: true
              example: Illustration
    Graphic: &id011
      description: "A graphic is a collection of metadata and an uploaded file submitted
        together for approval and publishing.\nIt supports the following file types:\n\
        \  - JPG\n  - PNG\n  - PDF\n  - INDD\n  - PSD\n  - GIF\n  - AI\n  - MP4\n\
        \  - Zip containing PDF and other files"
      type: object
      required:
      - id
      - type
      - attributes
      - relationships
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - graphic
        attributes:
          type: object
          required:
          - title
          - description
          - instructions
          - created_at
          - virin
          - country
          properties:
            title:
              description: Headline to introduce graphic. Emoji and other 
                pictographic symbols are not permitted.
              type: string
              maxLength: 255
              pattern: 
                ^(?!.*[\U0001D400-\U0001D7FF])[^\x00-\x09\x0b\x0c\x0e-\x1f\x7f-\x9f]+$
            description:
              description: Longer description of the graphic. Emoji and other 
                pictographic symbols are not permitted.
              type: string
              maxLength: 65535
              pattern: 
                ^(?!.*[\U0001D400-\U0001D7FF])[^\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\x9f]+$
            instructions:
              description: Instructions for release authority and review 
                handling.
              type: string
              maxLength: 65535
            caption_writer:
              description: Name of individual who captioned the graphic.
              type: string
              maxLength: 255
            tags:
              type: array
              description: "Array of tag strings pertaining to the media asset. Useful
                for identifying topics, persons, subjects,\nand objects."
              items:
                type: string
                maxLength: 100
                example: UH60 Blackhawk
            created_at:
              type: string
              description: Date and time (including timezone) when the graphic 
                was created.
              format: date-time
            virin:
              type: string
              description: "Visual imagery record identification number in compliance
                with DoD Visual Information Style Guide.\nSee (https://www.dimoc.mil/Portals/0/Documents/DoD_VISG_20200128_8.5x11_Format%201-24-2023.pdf)."
              example: 160323-O-AB123-1001
            subdiv:
              type: string
              maxLength: 50
              description: State/province where graphic was created, if 
                applicable.
              example: Washington
            country:
              type: string
              maxLength: 2
              description: ISO-3166-2 country code where graphic was created. 
                See (https://en.wikipedia.org/wiki/ISO_3166-2).
              example: US
            city:
              type: string
              maxLength: 75
              description: Name of city where graphic was created.
            status:
              type: string
              readOnly: true
              description: Status of the graphic in the system
              enum:
              - uploaded
              - pending-processing
              - needs-approval
              - published
              - archived
            thumbnail_url_template:
              type: string
              format: uri-template
              readOnly: true
              description: "A URI template for a thumbnail of the graphic. Replace
                {thumbnailSpec} with the size string required. Note that\nthe URI
                will return 404 until the batch is closed and the graphic has been
                processed. For example: 150x160_q95."
        relationships:
          type: object
          required:
          - batch_upload
          - category
          - service_unit
          properties:
            authors:
              description: "Optional array of Authors to credit for this work. If
                not provided, the `VIRIN` property will be used to\nauto-detect authors."
              type: object
              required:
              - data
              properties:
                data:
                  type: array
                  items:
                    type: object
                    required:
                    - id
                    - type
                    properties:
                      id:
                        type: string
                      type:
                        enum:
                        - author
            batch:
              description: The current `Batch` associated with the media asset.
              type: object
              readOnly: true
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - batch
            batch_upload:
              description: "A completed `BatchUpload` or `BatchMultipartUpload` object.
                This identifies the file\nto associate with the metadata."
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - batch-upload
                      - batch-multipart-upload
            category:
              description: A `GraphicCategory` for this graphic
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - graphic-category
            themes:
              description: Optional array of Theme to associate with this work.
              type: object
              required:
              - data
              properties:
                data:
                  type: array
                  items:
                    type: object
                    required:
                    - id
                    - type
                    properties:
                      id:
                        type: string
                      type:
                        enum:
                        - theme
            service_unit:
              description: Affiliated service unit
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - service-unit
    GraphicCategory: &id025
      description: Represents a logical category for graphics
      type: object
      required:
      - id
      - type
      - attributes
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - graphic-category
        attributes:
          type: object
          properties:
            name:
              type: string
              description: The name of the category
              readOnly: true
              example: Illustration
    Link: &id013
      description: Represents a URL with a descriptive title
      type: object
      required:
      - id
      - type
      - attributes
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - link
        attributes:
          type: object
          properties:
            title:
              type: string
              maxLength: 255
              pattern: 
                ^(?!.*[\U0001D400-\U0001D7FF])[^\x00-\x09\x0b\x0c\x0e-\x1f\x7f-\x9f]+$
              description: Descriptive text for this link. Emoji and other 
                pictographic symbols are not permitted.
            url:
              type: string
              format: url
              description: The URL must use HTTPS protocol and have a TLD that 
                ends in .mil, .gov, or dvidshub.net
    Location: &id026
      description: "Represents a specific location represented by longitude and latitude
        known to the DVIDS system for the purpose of\ndesignating media asset location."
      type: object
      required:
      - id
      - type
      - attributes
      - relationships
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - location
        attributes:
          type: object
          readOnly: true
          properties:
            name:
              type: string
              description: The common name of this location which may contain 
                UTF-8 characters
              example: Houston
            region:
              type: string
              enum:
              - Africa
              - Antarctica
              - Asia
              - At Sea
              - Europe
              - North America
              - Oceania
              - South America
              - In Space
              description: Region or continent in which this location exists
            latitude:
              type: string
              example: 34.1112226
            longitude:
              type: string
              example: -82.8670839
        relationships:
          type: object
          readOnly: true
          required:
          - country
          properties:
            country:
              description: Country in which this location exists
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - country
            country_subdiv:
              description: Optional CountrySubdiv in which this location exists
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - country-subdiv
    MediaCollection: &id014
      description: "A set of relationship data representing a media collection.\n\
        You may submit up to 50 media assets associated with a single story."
      type: array
      maxItems: 50
      items:
        type: object
        required:
        - id
        - type
        - meta
        properties:
          id:
            type: string
          type:
            enum:
            - audio
            - photo
            - graphic
            - news
            - video
            - publication-issue
          meta:
            type: object
            properties:
              is_primary:
                type: boolean
                description: Set to true if this is the primary media item in 
                  the set. Only one item in the array may be marked as primary.
    News: &id012
      description: "A news resource is a text-based news story submitted for approval
        and publishing. This resource is not associated\nwith an uploaded file."
      type: object
      required:
      - id
      - type
      - attributes
      - relationships
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - news
        attributes:
          type: object
          required:
          - title
          - description
          - body
          - created_at
          - country
          properties:
            category:
              type: string
              description: Category of the news story
              enum:
              - press-release
              - contract
              - transcript
              - speech
              - advisory
              - release
            title:
              description: Headline to introduce news story. Emoji and other 
                pictographic symbols are not permitted.
              type: string
              maxLength: 255
              pattern: 
                ^(?!.*[\U0001D400-\U0001D7FF])[^\x00-\x09\x0b\x0c\x0e-\x1f\x7f-\x9f]+$
            description:
              description: Longer description of the news story. Emoji and other
                pictographic symbols are not permitted.
              type: string
              maxLength: 65535
              pattern: 
                ^(?!.*[\U0001D400-\U0001D7FF])[^\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\x9f]+$
            body:
              description: "Full text of the news story which supports [Markdown](https://www.markdownguide.org/)
                formatting.\nAll UTF-8 characters are accepted except emoji. HTML
                formatting is not supported."
              type: string
              maxLength: 65535
              pattern: 
                ^(?!.*[\U0001D400-\U0001D7FF])[^\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\x9f]+$
            notes:
              description: Notes associated with the news story. For internal 
                use only.
              type: string
              maxLength: 65535
            tags:
              type: array
              description: "Array of tag strings pertaining to the media asset. Useful
                for identifying topics, persons, subjects,\nand objects."
              items:
                type: string
                maxLength: 100
                example: UH60 Blackhawk
            created_at:
              type: string
              description: Date and time (including timezone) when the news 
                story was written.
              format: date-time
            subdiv:
              type: string
              maxLength: 50
              description: State/province where which is the subject of the news
                story, if applicable.
              example: Washington
            country:
              type: string
              maxLength: 2
              description: ISO-3166-2 country code which is the subject of the 
                news story. See (https://en.wikipedia.org/wiki/ISO_3166-2).
              example: US
            city:
              type: string
              maxLength: 75
              description: Name of city which is the subject of the news story.
            status:
              type: string
              readOnly: true
              description: Status of the news article in the system
              enum:
              - unpublished
              - published
              - needs-approval
              - archived
        relationships:
          type: object
          required:
          - service_unit
          properties:
            authors:
              description: Optional array of Authors to credit for this work.
              type: object
              required:
              - data
              properties:
                data:
                  type: array
                  items:
                    type: object
                    required:
                    - id
                    - type
                    properties:
                      id:
                        type: string
                      type:
                        enum:
                        - author
            batch:
              description: The current `Batch` associated with the media asset.
              type: object
              readOnly: true
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - batch
            hometowns:
              description: Optional array of Location indicating the hometowns 
                of the subject(s)
              type: object
              required:
              - data
              properties:
                data:
                  type: array
                  items:
                    type: object
                    required:
                    - id
                    - type
                    properties:
                      id:
                        type: string
                      type:
                        enum:
                        - location
            themes:
              description: Optional array of Theme to associate with this work.
              type: object
              required:
              - data
              properties:
                data:
                  type: array
                  items:
                    type: object
                    required:
                    - id
                    - type
                    properties:
                      id:
                        type: string
                      type:
                        enum:
                        - theme
            service_unit:
              description: Affiliated service unit
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - service-unit
    Photo: &id015
      description: "A photo is a collection of metadata and an uploaded file submitted
        together for approval and publishing.\nIt supports the following file types:\n\
        \  - JPG\nFiles submitted must be at least 8KB in size to be considered valid."
      type: object
      required:
      - id
      - type
      - attributes
      - relationships
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - photo
        attributes:
          type: object
          required:
          - title
          - description
          - instructions
          - created_at
          - virin
          - country
          properties:
            title:
              description: Headline to introduce photo. Emoji and other 
                pictographic symbols are not permitted.
              type: string
              maxLength: 255
              pattern: 
                ^(?!.*[\U0001D400-\U0001D7FF])[^\x00-\x09\x0b\x0c\x0e-\x1f\x7f-\x9f]+$
            description:
              description: Longer description of the photo. Emoji and other 
                pictographic symbols are not permitted.
              type: string
              maxLength: 65535
              pattern: 
                ^(?!.*[\U0001D400-\U0001D7FF])[^\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\x9f]+$
            instructions:
              description: Instructions for release authority and review 
                handling.
              type: string
              maxLength: 65535
            notes:
              description: Notes associated with the photo.  For internal use 
                only.
              type: string
              maxLength: 65535
            caption_writer:
              description: Name of individual who captioned the graphic.
              type: string
              maxLength: 255
              writeOnly: true
            job_identifier:
              description: Identifier for the assignment, such as a unit, 
                branch, or COCOM name.
              type: string
              maxLength: 255
              writeOnly: true
            operation_name:
              description: Department of Defense operation name.
              type: string
              maxLength: 255
              writeOnly: true
            tags:
              type: array
              description: "Array of tag strings pertaining to the media asset. Useful
                for identifying topics, persons, subjects,\nand objects."
              items:
                type: string
                maxLength: 100
                example: UH60 Blackhawk
            created_at:
              type: string
              description: Date and time (including timezone) when the photo was
                captured.
              format: date-time
            virin:
              type: string
              description: "Visual imagery record identification number in compliance
                with DoD Visual Information Style Guide.\nSee (https://www.dimoc.mil/Portals/0/Documents/DoD_VISG_20200128_8.5x11_Format%201-24-2023.pdf)."
              example: 160323-O-AB123-1001
            subdiv:
              type: string
              maxLength: 50
              description: State/province where photo was captured, if 
                applicable.
              example: Washington
            country:
              type: string
              maxLength: 2
              description: ISO-3166-2 country code where photo was captured. See
                (https://en.wikipedia.org/wiki/ISO_3166-2).
              example: US
            city:
              type: string
              maxLength: 75
              description: Name of city where photo was captured.
            status:
              type: string
              readOnly: true
              description: Status of the photo in the system
              enum:
              - uploaded
              - pending-processing
              - archived
              - needs-approval
              - published
            thumbnail_url_template:
              type: string
              format: uri-template
              readOnly: true
              description: "A URI template for a thumbnail of the photo. Replace {thumbnailSpec}
                with the size string required. Note that\nthe URI will return 404
                until the batch is closed and the photo has been processed. For example:
                150x160_q95."
        relationships:
          type: object
          required:
          - batch_upload
          - service_unit
          properties:
            authors:
              description: "Optional array of Authors to credit for this work. If
                not provided, the `VIRIN` property will be used to\nauto-detect authors."
              type: object
              required:
              - data
              - links
              properties:
                data:
                  type: array
                  items:
                    type: object
                    required:
                    - id
                    - type
                    properties:
                      id:
                        type: string
                      type:
                        enum:
                        - author
                links:
                  type: object
                  required:
                  - self
                  properties:
                    self:
                      type: string
                      format: uri-reference
                    related:
                      type: string
                      format: uri-reference
            batch:
              description: The current `Batch` associated with the media asset.
              type: object
              readOnly: true
              required:
              - data
              - links
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - batch
                links:
                  type: object
                  required:
                  - self
                  properties:
                    self:
                      type: string
                      format: uri-reference
                    related:
                      type: string
                      format: uri-reference
            batch_upload:
              description: "A completed `BatchUpload` or `BatchMultipartUpload` object.
                This identifies the file\nto associate with the metadata."
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - batch-upload
                      - batch-multipart-upload
            hometowns:
              description: Optional array of Location indicating the hometowns 
                of the subject(s)
              type: object
              required:
              - data
              properties:
                data:
                  type: array
                  items:
                    type: object
                    required:
                    - id
                    - type
                    properties:
                      id:
                        type: string
                      type:
                        enum:
                        - location
            photo_gallery:
              description: Photo gallery assigned to photo, if applicable.
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - photo-gallery
            themes:
              description: Optional array of Theme to associate with this work.
              type: object
              required:
              - data
              - links
              properties:
                data:
                  type: array
                  items:
                    type: object
                    required:
                    - id
                    - type
                    properties:
                      id:
                        type: string
                      type:
                        enum:
                        - theme
                links:
                  type: object
                  required:
                  - self
                  properties:
                    self:
                      type: string
                      format: uri-reference
                    related:
                      type: string
                      format: uri-reference
            service_unit:
              description: Affiliated service unit
              type: object
              required:
              - data
              - links
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - service-unit
                links:
                  type: object
                  required:
                  - self
                  properties:
                    self:
                      type: string
                      format: uri-reference
                    related:
                      type: string
                      format: uri-reference
    PhotoGallery: &id016
      description: A photo gallery is a collection of related photographs to be 
        viewed together.
      type: object
      required:
      - id
      - type
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - photo-gallery
    Publication: &id027
      description: A publication is a collection of related publication issues 
        published together.
      type: object
      required:
      - id
      - type
      - attributes
      - relationships
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - publication
        attributes:
          type: object
          required:
          - title
          - description
          - created_at
          properties:
            title:
              description: Title of the publication. Emoji and other 
                pictographic symbols are not permitted.
              type: string
              maxLength: 75
              pattern: 
                ^(?!.*[\U0001D400-\U0001D7FF])[^\x00-\x09\x0b\x0c\x0e-\x1f\x7f-\x9f]+$
            description:
              description: Description of the publication. Emoji and other 
                pictographic symbols are not permitted.
              type: string
              maxLength: 65535
              pattern: 
                ^(?!.*[\U0001D400-\U0001D7FF])[^\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\x9f]+$
            created_at:
              type: string
              description: Date and time (including timezone) when the 
                publication was created
              format: date-time
        relationships:
          type: object
          required:
          - service_unit
          properties:
            service_unit:
              description: Affiliated service unit
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - service-unit
    PublicationIssue: &id017
      description: A publication issue is a collection of metadata and a PDF 
        file submitted together for approval and publishing.
      type: object
      required:
      - id
      - type
      - attributes
      - relationships
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - publication-issue
        attributes:
          type: object
          required:
          - description
          - created_at
          properties:
            description:
              description: Description of the publication issue. Emoji and other
                pictographic symbols are not permitted.
              type: string
              maxLength: 65535
              pattern: 
                ^(?!.*[\U0001D400-\U0001D7FF])[^\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\x9f]+$
            created_at:
              type: string
              description: Date and time (including timezone) when the 
                publication issue was created
              format: date-time
            status:
              type: string
              readOnly: true
              description: Status of the publication issue in the system
              enum:
              - uploaded
              - pending-processing
              - needs-approval
              - published
        relationships:
          type: object
          required:
          - publication
          - batch_upload
          properties:
            batch:
              description: The current `Batch` associated with the media asset
              type: object
              readOnly: true
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - batch
            batch_upload:
              description: "A completed `BatchUpload` or `BatchMultipartUpload` object.
                This identifies the file\nto associate with the metadata."
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - batch-upload
                      - batch-multipart-upload
            publication:
              description: The current `Publication` associated with the issue
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - publication
    ServiceUnit: &id028
      description: Represents a unit of the armed services. Each unit has 
        exactly one branch attribute.
      type: object
      required:
      - id
      - type
      - attributes
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - service-unit
        attributes:
          type: object
          required:
          - name
          - abbreviation
          - branch
          properties:
            name:
              type: string
              example: 5th Ranger Training Battalion
              readOnly: true
            abbreviation:
              type: string
              example: 5RTB
              readOnly: true
            branch:
              type: string
              enum:
              - army
              - navy
              - air-force
              - marines
              - coast-guard
              - space-force
              - joint
              - civilian
              example: army
              readOnly: true
              description: Branch of service slug for this unit.
            dvian:
              type: string
              description: Unique DVI identifier for this unit.
              example: A0051
              readOnly: true
              nullable: true
            requires_publishing_approval:
              type: boolean
              description: "Indicates if the unit requires approval from an administrator
                before media can be published. If this is\n`true`, assets submitted
                under this unit will go into an approval process when the batch is
                closed\ninstead of publishing immediately."
              readOnly: true
    ServiceUnitVirin: &id029
      description: Represents a VIRIN generated on behalf of a Service Unit
      type: object
      required:
      - id
      - type
      - attributes
      - relationships
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - service-unit-virin
        attributes:
          type: object
          required:
          - date
          properties:
            date:
              type: string
              description: Date and time (including timezone) when the media was
                captured.
              format: date-time
            virin:
              type: string
              readOnly: true
              description: "Visual imagery record identification number in compliance
                with DoD Visual Information Style Guide.\nSee (https://www.dimoc.mil/Portals/0/Documents/DoD_VISG_20200128_8.5x11_Format%201-24-2023.pdf)."
              example: 160323-O-A1234-1001
        relationships:
          type: object
          readOnly: true
          required:
          - service-unit
          properties:
            service-unit:
              description: ServiceUnit associated with the generated VIRIN
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - service-unit
    Tag: &id030
      description: Represents a tag to apply to a media asset.
      type: object
      required:
      - id
      - type
      - attributes
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - tag
        attributes:
          type: object
          required:
          - display
          - slug
          properties:
            display:
              type: string
              example: UH-60 Blackhawk
              readOnly: true
            slug:
              description: Whitespace-collapsed version of display, suitable for
                use in URLs
              type: string
              example: uh60-blackhawk
              readOnly: true
    Theme: &id031
      description: Represents a communications theme of the armed services.
      type: object
      required:
      - id
      - type
      - attributes
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - theme
        attributes:
          type: object
          required:
          - name
          - description
          properties:
            name:
              type: string
              example: In The Fight
              readOnly: true
            description:
              type: string
              example: We will improve cohesion by increasing our preparedness, 
                emphasizing consistency of leadership and personnel stability, 
                and sustained readiness across the force.
              readOnly: true
              nullable: true
    Video: &id018
      description: "A video is a collection of metadata and an uploaded file submitted
        together for approval and publishing.\nIt supports the following file types:\n\
        \  - MPG\n  - MOV\n  - MP4\n  - M4V\n  - WMV\n  - 3GPP\nFiles submitted must
        be at least 8KB in size to be considered valid."
      type: object
      required:
      - id
      - type
      - attributes
      - relationships
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - video
        attributes:
          type: object
          required:
          - category
          - title
          - description
          - instructions
          - created_at
          - virin
          - country
          properties:
            category:
              type: string
              description: Category of the video content
              enum:
              - b-roll
              - briefings
              - commercials
              - greetings
              - interviews
              - newscasts
              - package
              - psa
              - video productions
            title:
              description: Headline to introduce video. Emoji and other 
                pictographic symbols are not permitted.
              type: string
              maxLength: 255
              pattern: 
                ^(?!.*[\U0001D400-\U0001D7FF])[^\x00-\x09\x0b\x0c\x0e-\x1f\x7f-\x9f]+$
            description:
              description: Longer description of the video. Emoji and other 
                pictographic symbols are not permitted.
              type: string
              maxLength: 65535
              pattern: 
                ^(?!.*[\U0001D400-\U0001D7FF])[^\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\x9f]+$
            instructions:
              description: Instructions for release authority and review 
                handling.
              type: string
              maxLength: 65535
            notes:
              description: Notes associated with the video. For internal use 
                only.
              type: string
              maxLength: 65535
            tags:
              type: array
              description: "Array of tag strings pertaining to the media asset. Useful
                for identifying topics, persons, subjects,\nand objects."
              items:
                type: string
                maxLength: 100
                example: UH60 Blackhawk
            created_at:
              type: string
              description: Date and time (including timezone) when the video was
                captured.
              format: date-time
            virin:
              type: string
              description: "Visual imagery record identification number in compliance
                with DoD Visual Information Style Guide.\nSee (https://www.dimoc.mil/Portals/0/Documents/DoD_VISG_20200128_8.5x11_Format%201-24-2023.pdf)."
              example: 160323-O-AB123-1001
            subdiv:
              type: string
              maxLength: 50
              description: State/province where video was captured, if 
                applicable.
              example: Washington
            country:
              type: string
              maxLength: 2
              description: ISO-3166-2 country code where video was captured. See
                (https://en.wikipedia.org/wiki/ISO_3166-2).
              example: US
            city:
              type: string
              maxLength: 75
              description: Name of city where video was captured.
            status:
              type: string
              readOnly: true
              description: Status of the video in the system
              enum:
              - unpublished
              - published
              - archived
              - needs-approval
              - processing
            production_id_number:
              type: string
              minLength: 6
              maxLength: 8
              pattern: ^[a-zA-Z0-9]{6,8}$
              description: Optional Production ID Number which identifies the 
                production house. This only applies to video productions.
        relationships:
          type: object
          required:
          - batch_upload
          - service_unit
          properties:
            authors:
              description: "Optional array of Authors to credit for this work. If
                not provided, the `VIRIN` property will be used to\nauto-detect authors."
              type: object
              required:
              - data
              properties:
                data:
                  type: array
                  items:
                    type: object
                    required:
                    - id
                    - type
                    properties:
                      id:
                        type: string
                      type:
                        enum:
                        - author
            batch:
              description: The current `Batch` associated with the media asset.
              type: object
              readOnly: true
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - batch
            batch_upload:
              description: "A completed `BatchUpload` or `BatchMultipartUpload` object.
                This identifies the file\nto associate with the metadata."
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - batch-upload
                      - batch-multipart-upload
            hometowns:
              description: Optional array of Location indicating the hometowns 
                of the subject(s)
              type: object
              required:
              - data
              properties:
                data:
                  type: array
                  items:
                    type: object
                    required:
                    - id
                    - type
                    properties:
                      id:
                        type: string
                      type:
                        enum:
                        - location
            themes:
              description: Optional array of Theme to associate with this work.
              type: object
              required:
              - data
              properties:
                data:
                  type: array
                  items:
                    type: object
                    required:
                    - id
                    - type
                    properties:
                      id:
                        type: string
                      type:
                        enum:
                        - theme
            service_unit:
              description: Affiliated service unit
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - id
                  - type
                  properties:
                    id:
                      type: string
                    type:
                      enum:
                      - service-unit
    Error: *id001
paths:
  /author:
    get:
      summary: Get a list of available authors with paging and filtering.
      description: Each author has a service_units relationship indicating the 
        service-units to which the member belongs.
      operationId: getAuthors
      parameters:
      - name: name
        in: query
        description: Search by author first or last name. A trailing wildcard is
          used in search to "complete" the entered value.
        schema:
          type: string
          example: John Smith
      - name: first_name
        in: query
        description: Search by author first name. A trailing wildcard is used in
          search to "complete" the entered value.
        schema:
          type: string
          example: John
      - name: last_name
        in: query
        description: Search by author last name. A trailing wildcard is used in 
          search to "complete" the entered value.
        schema:
          type: string
          example: John
      - name: vision_id
        in: query
        description: Lookup by author vision_id, exact match.
        schema:
          type: string
          example: AB123
      - name: branch
        in: query
        description: Filter by branch slug of the author's rank.
        schema:
          type: string
          example: air-force
      - name: page
        in: query
        description: Page number of results
        schema:
          type: integer
          default: 1
      - name: limit
        in: query
        description: Limit of results per page
        schema:
          type: integer
          default: 50
      tags:
      - author
      responses:
        '200':
          description: An array of Author objects
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - links
                - data
                properties:
                  links:
                    type: object
                    required:
                    - self
                    - first
                    - last
                    properties:
                      self:
                        description: URI of the current result set
                        type: string
                        format: uri
                      first:
                        description: URI of the first page of results
                        type: string
                        format: uri
                      last:
                        description: URI of the last page of results
                        type: string
                        format: uri
                      prev:
                        description: URI of the previous page of results (if 
                          any)
                        type: string
                        format: uri
                        nullable: true
                      next:
                        description: URI of the next page results (if any)
                        type: string
                        format: uri
                        nullable: true
                  data:
                    type: array
                    items: *id002
  /author/{id}:
    parameters:
    - name: id
      in: path
      description: Author ID
      required: true
      schema:
        type: string
    get:
      summary: Get an author by id
      operationId: getAuthor
      tags:
      - author
      responses:
        '200':
          description: An Author object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id002
        '404': *id003
  /author/{id}/virin:
    parameters:
    - name: id
      in: path
      description: Author ID
      required: true
      schema:
        type: string
    post:
      summary: Create a VIRIN for an author
      operationId: createAuthorVirin
      tags:
      - author
      - virin
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id004
      responses:
        '201':
          description: The created AuthorVirin object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id004
        '400': *id005
        '404': *id003
  /batch:
    get:
      summary: Get a list of batches with paging and filtering
      description: "By default, this operation returns only batches with `closed=false`.
        To control this\nbehavior, use the `closed` query parameter."
      operationId: getBatches
      parameters:
      - name: closed
        in: query
        description: Return batches with `closed` property matching this value.
        schema:
          type: boolean
          default: false
      - name: page
        in: query
        description: Page number of results
        schema:
          type: integer
          default: 1
      - name: limit
        in: query
        description: Limit of results per page
        schema:
          type: integer
          default: 50
      tags:
      - batch
      responses:
        '200':
          description: An array of Batch objects
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items: *id006
    post:
      summary: Create a new batch to submit media assets.
      operationId: createBatch
      tags:
      - batch
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id006
      responses:
        '201':
          description: The created Batch object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id006
        '400': *id005
  /batch/{id}:
    parameters:
    - name: id
      in: path
      description: Batch ID
      required: true
      schema:
        type: string
    get:
      summary: Get a batch by id
      operationId: getBatch
      tags:
      - batch
      responses:
        '200':
          description: A Batch object
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  data: *id006
    patch:
      summary: Close a batch by id
      description: "This endpoint is used to close a batch for review and publication
        of media assets.\nA closed batch if final and cannot be modified or deleted.\n\
        The batch must be in the 'open' state to be closed."
      operationId: closeBatch
      tags:
      - batch
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id006
      responses:
        '200':
          description: The closed Batch object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id006
        '400': *id005
        '403': *id007
        '404': *id003
  /batch/{batch_id}/audio:
    parameters:
    - name: batch_id
      in: path
      description: Batch ID
      required: true
      schema:
        type: string
    post:
      summary: Create a new audio clip in the batch
      operationId: createBatchAudio
      tags:
      - audio
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id008
      responses:
        '201':
          description: The created Audio object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id008
        '400': *id005
  /batch/{batch_id}/audio/{id}:
    parameters:
    - name: batch_id
      in: path
      description: Batch ID
      required: true
      schema:
        type: string
    - name: id
      in: path
      description: Audio ID
      required: true
      schema:
        type: string
    get:
      summary: Get an audio clip by id
      operationId: getBatchAudio
      tags:
      - audio
      responses:
        '200':
          description: The Audio object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id008
        '403': *id007
        '404': *id003
    put:
      summary: Update an audio clip by id
      operationId: updateBatchAudio
      tags:
      - audio
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id008
      responses:
        '200':
          description: The updated Audio object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id008
        '400': *id005
        '403': *id007
        '404': *id003
    delete:
      summary: Delete an audio clip by id
      description: Note that deleting an audio clip will also delete the 
        associated `batchUpload`.
      operationId: deleteBatchAudio
      tags:
      - audio
      responses:
        '204':
          description: No content (audio successfully deleted)
        '403': *id007
        '404': *id003
        '409': *id009
  /batch/{batch_id}/document:
    parameters:
    - name: batch_id
      in: path
      description: Batch ID
      required: true
      schema:
        type: string
    post:
      summary: Create a new document in the batch
      operationId: createBatchDocument
      tags:
      - document
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id010
      responses:
        '201':
          description: The created Document object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id010
        '400': *id005
  /batch/{batch_id}/document/{id}:
    parameters:
    - name: batch_id
      in: path
      description: Batch ID
      required: true
      schema:
        type: string
    - name: id
      in: path
      description: Document ID
      required: true
      schema:
        type: string
    get:
      summary: Get a document by id
      operationId: getBatchDocument
      tags:
      - document
      responses:
        '200':
          description: The Document object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id010
        '403': *id007
        '404': *id003
    put:
      summary: Update a document by id
      operationId: updateBatchDocument
      tags:
      - document
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id010
      responses:
        '200':
          description: The updated Document object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id010
        '400': *id005
        '403': *id007
        '404': *id003
    delete:
      summary: Delete a document by id
      description: Note that deleting a document will also delete the associated
        `batchUpload`.
      operationId: deleteBatchDocument
      tags:
      - document
      responses:
        '204':
          description: No content (document successfully deleted)
        '403': *id007
        '404': *id003
        '409': *id009
  /batch/{batch_id}/graphic:
    parameters:
    - name: batch_id
      in: path
      description: Batch ID
      required: true
      schema:
        type: string
    post:
      summary: Create a new graphic in the batch
      operationId: createBatchGraphic
      tags:
      - graphic
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id011
      responses:
        '201':
          description: The created Graphic object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id011
        '400': *id005
  /batch/{batch_id}/graphic/{id}:
    parameters:
    - name: batch_id
      in: path
      description: Batch ID
      required: true
      schema:
        type: string
    - name: id
      in: path
      description: Graphic ID
      required: true
      schema:
        type: string
    get:
      summary: Get a graphic by id
      operationId: getBatchGraphic
      tags:
      - graphic
      responses:
        '200':
          description: The Graphic object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id011
        '403': *id007
        '404': *id003
    put:
      summary: Update a graphic by id
      operationId: updateBatchGraphic
      tags:
      - graphic
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id011
      responses:
        '200':
          description: The updated Graphic object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id011
        '400': *id005
        '403': *id007
        '404': *id003
    delete:
      summary: Delete a graphic by id
      description: Note that deleting a graphic will also delete the associated 
        `batchUpload`.
      operationId: deleteBatchGraphic
      tags:
      - graphic
      responses:
        '204':
          description: No content (graphic successfully deleted)
        '403': *id007
        '404': *id003
        '409': *id009
  /batch/{batch_id}/news:
    parameters:
    - name: batch_id
      in: path
      description: Batch ID
      required: true
      schema:
        type: string
    post:
      summary: Create a new news story in the batch
      operationId: createBatchNews
      tags:
      - news
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id012
      responses:
        '201':
          description: The created News object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id012
        '400': *id005
  /batch/{batch_id}/news/{id}:
    parameters:
    - name: batch_id
      in: path
      description: Batch ID
      required: true
      schema:
        type: string
    - name: id
      in: path
      description: News ID
      required: true
      schema:
        type: string
    get:
      summary: Get a news story by id
      operationId: getBatchNews
      tags:
      - news
      responses:
        '200':
          description: The News object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id012
        '403': *id007
        '404': *id003
    put:
      summary: Update a news story by id
      operationId: updateBatchNews
      tags:
      - news
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id012
      responses:
        '200':
          description: The updated News object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id012
        '400': *id005
        '403': *id007
        '404': *id003
    delete:
      summary: Delete a news story by id
      operationId: deleteBatchNews
      tags:
      - news
      responses:
        '204':
          description: No content (news story successfully deleted)
        '403': *id007
        '404': *id003
        '409': *id009
  /batch/{batch_id}/news/{id}/link:
    parameters:
    - name: batch_id
      in: path
      description: Batch ID
      required: true
      schema:
        type: string
    - name: id
      in: path
      description: News ID
      required: true
      schema:
        type: string
    get:
      summary: Get a list of related Links for a news story
      description: Retrieve the related Links associated with a specific news 
        story in a batch.
      operationId: getBatchNewsLinks
      tags:
      - news
      - links
      responses:
        '200':
          description: An array of Link objects
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id013
        '403': *id007
        '404': *id003
    post:
      summary: Add the specified Link to the related links for the news story
      operationId: createBatchNewsLink
      tags:
      - news
      - links
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id013
      responses:
        '200':
          description: The created Link object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id013
        '400': *id005
        '403': *id007
        '404': *id003
  /batch/{batch_id}/news/{news_id}/link/{id}:
    parameters:
    - name: batch_id
      in: path
      description: Batch ID
      required: true
      schema:
        type: string
    - name: news_id
      in: path
      description: News ID
      required: true
      schema:
        type: string
    - name: id
      in: path
      description: Link ID
      required: true
      schema:
        type: string
    get:
      summary: Get a Link by id
      operationId: getBatchNewsLink
      tags:
      - news
      - links
      responses:
        '200':
          description: The Link object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id013
        '403': *id007
        '404': *id003
    put:
      summary: Update a Link by id
      operationId: updateBatchNewsLink
      tags:
      - news
      - links
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id013
      responses:
        '200':
          description: The updated Link object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id013
        '400': *id005
        '403': *id007
        '404': *id003
    delete:
      summary: Delete a Link by id
      operationId: deleteBatchNewsLink
      tags:
      - news
      - links
      responses:
        '204':
          description: No content (Link successfully deleted)
        '403': *id007
        '404': *id003
        '409': *id009
  /batch/{batch_id}/news/{id}/media:
    parameters:
    - name: batch_id
      in: path
      description: Batch ID
      required: true
      schema:
        type: string
    - name: id
      in: path
      description: News ID
      required: true
      schema:
        type: string
    get:
      summary: Get a media collection for a news story
      description: "Retrieve the media collection associated with a specific news
        story in a batch.\nThis endpoint returns the relationship data object containing
        the media resources.\nMedia resources can include images, videos, and other
        media types that are part of the news story."
      operationId: getBatchNewsMedia
      tags:
      - news
      - media
      responses:
        '200':
          description: The relationship data object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id014
        '403': *id007
        '404': *id003
    post:
      summary: Add the specified media resources to the media collection for the
        news story
      operationId: updateBatchNewsMedia
      tags:
      - news
      - media
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id014
      responses:
        '200':
          description: The updated relationship data
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id014
        '400': *id005
        '403': *id007
        '404': *id003
    delete:
      summary: Delete the specified media resources from the media collection 
        for a news story
      operationId: deleteBatchNewsMedia
      tags:
      - news
      - media
      responses:
        '200':
          description: The updated relationship data
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id014
        '403': *id007
        '404': *id003
        '409': *id009
  /batch/{batch_id}/photo:
    parameters:
    - name: batch_id
      in: path
      description: Batch ID
      required: true
      schema:
        type: string
    post:
      summary: Create a new photo in the batch
      operationId: createBatchPhoto
      tags:
      - photo
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id015
      responses:
        '201':
          description: The created Photo object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id015
        '400': *id005
  /batch/{batch_id}/photo/{id}:
    parameters:
    - name: batch_id
      in: path
      description: Batch ID
      required: true
      schema:
        type: string
    - name: id
      in: path
      description: Photo ID
      required: true
      schema:
        type: string
    get:
      summary: Get a photo by id
      operationId: getBatchPhoto
      tags:
      - photo
      responses:
        '200':
          description: The Photo object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id015
        '403': *id007
        '404': *id003
    put:
      summary: Update a photo by id
      operationId: updateBatchPhoto
      tags:
      - photo
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id015
      responses:
        '200':
          description: The updated Photo object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id015
        '400': *id005
        '403': *id007
        '404': *id003
    delete:
      summary: Delete a photo by id
      description: Note that deleting a photo will also delete the associated 
        `batchUpload`.
      operationId: deleteBatchPhoto
      tags:
      - photo
      responses:
        '204':
          description: No content (photo successfully deleted)
        '403': *id007
        '404': *id003
        '409': *id009
  /batch/{batch_id}/photo-gallery:
    parameters:
    - name: batch_id
      in: path
      description: Batch ID
      required: true
      schema:
        type: string
    post:
      summary: Create a new photo gallery in the batch
      operationId: createBatchPhotoGallery
      tags:
      - photo
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id016
      responses:
        '201':
          description: The created PhotoGallery object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id016
        '400': *id005
  /batch/{batch_id}/publication-issue:
    parameters:
    - name: batch_id
      in: path
      description: Batch ID
      required: true
      schema:
        type: string
    post:
      summary: Create a new publication issue in the batch
      operationId: createBatchPublicationIssue
      tags:
      - publication
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id017
      responses:
        '201':
          description: The created `PublicationIssue` object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id017
        '400': *id005
  /batch/{batch_id}/publication-issue/{id}:
    parameters:
    - name: batch_id
      in: path
      description: Batch ID
      required: true
      schema:
        type: string
    - name: id
      in: path
      description: Publication Issue ID
      required: true
      schema:
        type: string
    get:
      summary: Get a publication issue by id
      operationId: getBatchPublicationIssue
      tags:
      - publication
      responses:
        '200':
          description: The `PublicationIssue` object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id017
        '403': *id007
        '404': *id003
    put:
      summary: Update a publication issue by id
      operationId: updateBatchPublicationIssue
      tags:
      - publication
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id017
      responses:
        '200':
          description: The updated `PublicationIssue` object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id017
        '400': *id005
        '403': *id007
        '404': *id003
    delete:
      summary: Delete a publication issue by id
      description: Note that deleting a publication issue will also delete the 
        associated `batchUpload`.
      operationId: deleteBatchPublicationIssue
      tags:
      - publication
      responses:
        '204':
          description: No content (publication issue successfully deleted)
        '403': *id007
        '404': *id003
        '409': *id009
  /batch/{batch_id}/video:
    parameters:
    - name: batch_id
      in: path
      description: Batch ID
      required: true
      schema:
        type: string
    post:
      summary: Create a new video in the batch
      operationId: createBatchVideo
      tags:
      - video
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id018
      responses:
        '201':
          description: The created Video object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id018
        '400': *id005
  /batch/{batch_id}/video/{id}:
    parameters:
    - name: batch_id
      in: path
      description: Batch ID
      required: true
      schema:
        type: string
    - name: id
      in: path
      description: Video ID
      required: true
      schema:
        type: string
    get:
      summary: Get a video by id
      operationId: getBatchVideo
      tags:
      - video
      responses:
        '200':
          description: The Video object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id018
        '403': *id007
        '404': *id003
    put:
      summary: Update a video by id
      operationId: updateBatchVideo
      tags:
      - video
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id018
      responses:
        '200':
          description: The updated Video object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id018
        '400': *id005
        '403': *id007
        '404': *id003
    delete:
      summary: Delete a video by id
      description: Note that deleting a video will also delete the associated 
        `batchUpload`.
      operationId: deleteBatchVideo
      tags:
      - video
      responses:
        '204':
          description: No content (video successfully deleted)
        '403': *id007
        '404': *id003
        '409': *id009
  /batch/{batch_id}/upload:
    parameters:
    - name: batch_id
      in: path
      description: Batch ID
      required: true
      schema:
        type: string
    get:
      summary: Get a list of batch uploads with paging and filtering
      operationId: getBatchUploads
      parameters:
      - name: page
        in: query
        description: Page number of results
        schema:
          type: integer
          default: 1
      - name: limit
        in: query
        description: Limit of results per page
        schema:
          type: integer
          default: 50
      tags:
      - upload
      responses:
        '200':
          description: An array of BatchUpload objects
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - links
                - data
                properties:
                  links:
                    type: object
                    required:
                    - self
                    - first
                    - last
                    properties:
                      self:
                        description: URI of the current result set
                        type: string
                        format: uri
                      first:
                        description: URI of the first page of results
                        type: string
                        format: uri
                      last:
                        description: URI of the last page of results
                        type: string
                        format: uri
                      prev:
                        description: URI of the previous page of results (if 
                          any)
                        type: string
                        format: uri
                        nullable: true
                      next:
                        description: URI of the next page results (if any)
                        type: string
                        format: uri
                        nullable: true
                  data:
                    type: array
                    items: *id019
    post:
      summary: Create a new batch upload to upload files.
      operationId: createBatchUpload
      tags:
      - upload
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id019
      responses:
        '201':
          description: The created BatchUpload object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id019
        '400': *id005
  /batch/{batch_id}/multipart-upload:
    parameters:
    - name: batch_id
      in: path
      description: Batch ID
      required: true
      schema:
        type: string
    post:
      summary: Create a new batch multipart upload to upload larger files
      operationId: createBatchMultipartUpload
      tags:
      - upload
      responses:
        '201':
          description: The created BatchMultipartUpload object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id020
        '400': *id005
  /batch/{batch_id}/multipart-upload/{id}:
    parameters:
    - name: batch_id
      in: path
      description: Batch ID
      required: true
      schema:
        type: string
    - name: id
      in: path
      description: Multipart Upload ID
      required: true
      schema:
        type: string
    get:
      summary: Get the batch multipart upload by id
      description: "Retrieve the details of a specific batch multipart upload by its
        ID\nincluding a list of uploaded parts."
      operationId: getBatchMultipartUpload
      tags:
      - upload
      responses:
        '200':
          description: The BatchMultipartUpload object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id020
        '403': *id007
        '404': *id003
    patch:
      summary: Complete a batch multipart upload
      operationId: completeBatchMultipartUpload
      tags:
      - upload
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id020
      responses:
        '200':
          description: The completed BatchMultipartUpload object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id020
        '400': *id005
        '403': *id007
        '404': *id003
    delete:
      summary: Abort a batch multipart upload and delete its incomplete parts
      operationId: deleteBatchMultipartUpload
      tags:
      - upload
      responses:
        '204':
          description: No content (batch multipart upload successfully deleted)
        '403': *id007
        '404': *id003
  /batch/{batch_id}/multipart-upload/{id}/part:
    parameters:
    - name: batch_id
      in: path
      description: Batch ID
      required: true
      schema:
        type: string
    - name: id
      in: path
      description: Multipart Upload ID
      required: true
      schema:
        type: string
    post:
      summary: Create a new batch multipart upload part
      description: "Upload a part of a file in a batch multipart upload. This is used
        to upload larger files in chunks.\nThe total size of all parts must not exceed
        the maximum allowed size."
      operationId: createBatchMultipartUploadPart
      tags:
      - upload
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id021
      responses:
        '201':
          description: The created BatchMultipartUploadPart object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id021
        '400': *id005
  /country:
    get:
      summary: Get a list of countries with paging and filtering.
      operationId: getCountries
      parameters:
      - name: name
        in: query
        description: Search by country name. A trailing wildcard is used in 
          search to "complete" the entered value.
        schema:
          type: string
          example: Mexi
      - name: page
        in: query
        description: Page number of results
        schema:
          type: integer
          default: 1
      - name: limit
        in: query
        description: Limit of results per page
        schema:
          type: integer
          default: 50
      tags:
      - country
      responses:
        '200':
          description: An array of Country objects
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - links
                - data
                properties:
                  links:
                    type: object
                    required:
                    - self
                    - first
                    - last
                    properties:
                      self:
                        description: URI of the current result set
                        type: string
                        format: uri
                      first:
                        description: URI of the first page of results
                        type: string
                        format: uri
                      last:
                        description: URI of the last page of results
                        type: string
                        format: uri
                      prev:
                        description: URI of the previous page of results (if 
                          any)
                        type: string
                        format: uri
                        nullable: true
                      next:
                        description: URI of the next page results (if any)
                        type: string
                        format: uri
                        nullable: true
                  data:
                    type: array
                    items: *id022
  /country/{id}:
    parameters:
    - name: id
      in: path
      description: Country ID
      required: true
      schema:
        type: string
    get:
      summary: Get a country by id
      operationId: getCountry
      tags:
      - country
      responses:
        '200':
          description: A Country object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id022
        '404': *id003
  /country/{country_id}/subdiv:
    parameters:
    - name: country_id
      in: path
      description: Country ID
      required: true
      schema:
        type: string
    get:
      summary: Get a list of subdivs by country with paging and filtering
      operationId: getCountrySubdivs
      parameters:
      - name: name
        in: query
        description: Search by subdiv name. A trailing wildcard is used in 
          search to "complete" the entered value.
        schema:
          type: string
          example: Mexi
      - name: page
        in: query
        description: Page number of results
        schema:
          type: integer
          default: 1
      - name: limit
        in: query
        description: Limit of results per page
        schema:
          type: integer
          default: 50
      tags:
      - country
      responses:
        '200':
          description: An array of CountrySubdiv objects
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - links
                - data
                properties:
                  links:
                    type: object
                    required:
                    - self
                    - first
                    - last
                    properties:
                      self:
                        description: URI of the current result set
                        type: string
                        format: uri
                      first:
                        description: URI of the first page of results
                        type: string
                        format: uri
                      last:
                        description: URI of the last page of results
                        type: string
                        format: uri
                      prev:
                        description: URI of the previous page of results (if 
                          any)
                        type: string
                        format: uri
                        nullable: true
                      next:
                        description: URI of the next page results (if any)
                        type: string
                        format: uri
                        nullable: true
                  data:
                    type: array
                    items: *id023
  /country/{country_id}/subdiv/{id}:
    parameters:
    - name: country_id
      in: path
      description: Country ID
      required: true
      schema:
        type: string
    - name: id
      in: path
      description: Subdiv ID
      required: true
      schema:
        type: string
    get:
      summary: Get a subdiv by id
      operationId: getCountrySubdiv
      tags:
      - country
      responses:
        '200':
          description: A CountrySubdiv object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id023
        '404': *id003
  /document-category:
    get:
      summary: Get a list of available document categories with paging and 
        filtering
      operationId: getDocumentCategories
      parameters:
      - name: page
        in: query
        description: Page number of results
        schema:
          type: integer
          default: 1
      - name: limit
        in: query
        description: Limit of results per page
        schema:
          type: integer
          default: 50
      tags:
      - document
      responses:
        '200':
          description: An array of DocumentCategory objects
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - links
                - data
                properties:
                  links:
                    type: object
                    required:
                    - self
                    - first
                    - last
                    properties:
                      self:
                        description: URI of the current result set
                        type: string
                        format: uri
                      first:
                        description: URI of the first page of results
                        type: string
                        format: uri
                      last:
                        description: URI of the last page of results
                        type: string
                        format: uri
                      prev:
                        description: URI of the previous page of results (if 
                          any)
                        type: string
                        format: uri
                        nullable: true
                      next:
                        description: URI of the next page results (if any)
                        type: string
                        format: uri
                        nullable: true
                  data:
                    type: array
                    items: *id024
  /graphic:
    parameters:
    - name: virin
      in: query
      description: VIRIN
      schema:
        type: string
    get:
      summary: Get a list of graphics matching parameters
      description: "Provide a VIRIN to locate graphics in the system matching that
        value. The purpose is to identify potential\nduplicates prior to submission."
      operationId: getGraphics
      tags:
      - graphic
      responses:
        '200':
          description: An array of Graphic objects
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id011
        '400': *id005
  /graphic-category:
    get:
      summary: Get a list of available graphics categories with paging and 
        filtering
      operationId: getGraphicCategories
      parameters:
      - name: page
        in: query
        description: Page number of results
        schema:
          type: integer
          default: 1
      - name: limit
        in: query
        description: Limit of results per page
        schema:
          type: integer
          default: 50
      tags:
      - graphic
      responses:
        '200':
          description: An array of GraphicCategory objects
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - links
                - data
                properties:
                  links:
                    type: object
                    required:
                    - self
                    - first
                    - last
                    properties:
                      self:
                        description: URI of the current result set
                        type: string
                        format: uri
                      first:
                        description: URI of the first page of results
                        type: string
                        format: uri
                      last:
                        description: URI of the last page of results
                        type: string
                        format: uri
                      prev:
                        description: URI of the previous page of results (if 
                          any)
                        type: string
                        format: uri
                        nullable: true
                      next:
                        description: URI of the next page results (if any)
                        type: string
                        format: uri
                        nullable: true
                  data:
                    type: array
                    items: *id025
  /location:
    get:
      summary: Get a list of locations with paging and filtering.
      operationId: getLocations
      parameters:
      - name: name
        in: query
        description: Search by location name. A trailing wildcard is used in 
          search to "complete" the entered value.
        schema:
          type: string
          example: Houst
      - name: page
        in: query
        description: Page number of results
        schema:
          type: integer
          default: 1
      - name: limit
        in: query
        description: Limit of results per page
        schema:
          type: integer
          default: 50
      tags:
      - location
      responses:
        '200':
          description: An array of Location objects
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - links
                - data
                properties:
                  links:
                    type: object
                    required:
                    - self
                    - first
                    - last
                    properties:
                      self:
                        description: URI of the current result set
                        type: string
                        format: uri
                      first:
                        description: URI of the first page of results
                        type: string
                        format: uri
                      last:
                        description: URI of the last page of results
                        type: string
                        format: uri
                      prev:
                        description: URI of the previous page of results (if 
                          any)
                        type: string
                        format: uri
                        nullable: true
                      next:
                        description: URI of the next page results (if any)
                        type: string
                        format: uri
                        nullable: true
                  data:
                    type: array
                    items: *id026
  /location/{id}:
    parameters:
    - name: id
      in: path
      description: Location ID
      required: true
      schema:
        type: string
    get:
      summary: Get a location by id
      operationId: getLocation
      tags:
      - location
      responses:
        '200':
          description: A Location object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id026
        '404': *id003
  /photo:
    parameters:
    - name: average_hash
      in: query
      description: Average hash signature
      schema:
        type: string
    - name: perceptual_hash
      in: query
      description: Perceptual hash signature
      schema:
        type: string
    - name: difference_hash
      in: query
      description: Difference hash signature
      schema:
        type: string
    - name: wavelet_hash
      in: query
      description: Wavelet hash signature
      schema:
        type: string
    - name: virin
      in: query
      description: VIRIN
      schema:
        type: string
    get:
      summary: Get a list of photos matching parameters
      description: "The hash parameters correspond to the properties provided by the\n\
        project https://pypi.org/project/ImageHash/. Those can be provided individually
        or in combination to locate\nimages in the system matching those values. If
        multiple parameters are provided, photos matching ANY parameter\nare returned.
        The purpose is to identify potential duplicates prior to submission."
      operationId: getPhotos
      tags:
      - photo
      responses:
        '200':
          description: An array of Photo objects
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id015
        '400': *id005
  /publication:
    get:
      summary: Get a list of publications with paging and filtering
      description: Returns a list of publications available for the current 
        user's units with paging and filtering.
      operationId: getPublications
      parameters:
      - name: title
        in: query
        description: "Search by publication title. A trailing wildcard is used in
          search to \n\"complete\" the entered value."
        schema:
          type: string
          example: Engineer
      - name: page
        in: query
        description: Page number of results
        schema:
          type: integer
          default: 1
      - name: limit
        in: query
        description: Limit of results per page
        schema:
          type: integer
          default: 50
      tags:
      - publication
      responses:
        '200':
          description: An array of `Publication` objects
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - links
                - data
                properties:
                  links:
                    type: object
                    required:
                    - self
                    - first
                    - last
                    properties:
                      self:
                        description: URI of the current result set
                        type: string
                        format: uri
                      first:
                        description: URI of the first page of results
                        type: string
                        format: uri
                      last:
                        description: URI of the last page of results
                        type: string
                        format: uri
                      prev:
                        description: URI of the previous page of results (if 
                          any)
                        type: string
                        format: uri
                        nullable: true
                      next:
                        description: URI of the next page results (if any)
                        type: string
                        format: uri
                        nullable: true
                  data:
                    type: array
                    items: *id027
  /service-unit:
    get:
      summary: Get a list of service units with paging and filtering
      description: "By default, this operation returns the units in which the consumer
        has an active \nmembership. To control this behavior, use the `only_mine`
        query parameter."
      operationId: getServiceUnits
      parameters:
      - name: name
        in: query
        description: Search by unit name. A trailing wildcard is used in search 
          to "complete" the entered value.
        schema:
          type: string
          example: 4th Infantry
      - name: branch
        in: query
        description: Filter by branch slug.
        schema:
          type: string
          example: air-force
      - name: only_mine
        in: query
        description: If `false`, return all units instead of only the ones in 
          which the consumer has an active membership.
        schema:
          type: boolean
          example: false
          default: true
      - name: page
        in: query
        description: Page number of results
        schema:
          type: integer
          default: 1
      - name: limit
        in: query
        description: Limit of results per page
        schema:
          type: integer
          default: 50
      tags:
      - service-unit
      responses:
        '200':
          description: An array of ServiceUnit objects
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - links
                - data
                properties:
                  links:
                    type: object
                    required:
                    - self
                    - first
                    - last
                    properties:
                      self:
                        description: URI of the current result set
                        type: string
                        format: uri
                      first:
                        description: URI of the first page of results
                        type: string
                        format: uri
                      last:
                        description: URI of the last page of results
                        type: string
                        format: uri
                      prev:
                        description: URI of the previous page of results (if 
                          any)
                        type: string
                        format: uri
                        nullable: true
                      next:
                        description: URI of the next page results (if any)
                        type: string
                        format: uri
                        nullable: true
                  data:
                    type: array
                    items: *id028
  /service-unit/{id}:
    parameters:
    - name: id
      in: path
      description: Service Unit ID
      required: true
      schema:
        type: string
    get:
      summary: Get a service unit by id
      operationId: getServiceUnit
      tags:
      - service-unit
      responses:
        '200':
          description: A ServiceUnit object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id028
        '404': *id003
  /service-unit/{id}/author:
    parameters:
    - name: id
      in: path
      description: Service Unit ID
      required: true
      schema:
        type: string
    get:
      summary: Get a list of authors associated with a service-unit with paging 
        and filtering
      operationId: getServiceUnitAuthors
      parameters:
      - name: name
        in: query
        description: Search by author name. A trailing wildcard is used in 
          search to "complete" the entered value.
        schema:
          type: string
          example: John Sm
      - name: page
        in: query
        description: Page number of results
        schema:
          type: integer
          default: 1
      - name: limit
        in: query
        description: Limit of results per page
        schema:
          type: integer
          default: 50
      tags:
      - service-unit
      - author
      responses:
        '200':
          description: An array of Author objects
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - links
                - data
                properties:
                  links:
                    type: object
                    required:
                    - self
                    - first
                    - last
                    properties:
                      self:
                        description: URI of the current result set
                        type: string
                        format: uri
                      first:
                        description: URI of the first page of results
                        type: string
                        format: uri
                      last:
                        description: URI of the last page of results
                        type: string
                        format: uri
                      prev:
                        description: URI of the previous page of results (if 
                          any)
                        type: string
                        format: uri
                        nullable: true
                      next:
                        description: URI of the next page results (if any)
                        type: string
                        format: uri
                        nullable: true
                  data:
                    type: array
                    items: *id002
  /service-unit/{id}/virin:
    parameters:
    - name: id
      in: path
      description: Service Unit ID
      required: true
      schema:
        type: string
    post:
      summary: Create a VIRIN for a service unit
      description: "This endpoint creates a VIRIN for the service unit specified by
        the ID in the path parameter.\nThe VIRIN is a unique identifier used to track
        media assets within the system.\nIf the unit does not have a DVIAN on file,
        a 409 Conflict error will be returned."
      operationId: createServiceUnitVirin
      tags:
      - service-unit
      - virin
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data: *id029
      responses:
        '201':
          description: The created ServiceUnitVirin object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id029
        '400': *id005
        '404': *id003
        '409': *id009
  /tag:
    get:
      summary: Get a list of tags for media assets with search, paging, and 
        filtering
      operationId: getTags
      parameters:
      - name: display
        in: query
        description: Search by tag display. A trailing wildcard is used in 
          search to "complete" the entered value.
        schema:
          type: string
          example: John Sm
      - name: page
        in: query
        description: Page number of results
        schema:
          type: integer
          default: 1
      - name: limit
        in: query
        description: Limit of results per page
        schema:
          type: integer
          default: 50
      tags:
      - tag
      responses:
        '200':
          description: An array of Tag objects
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - links
                - data
                properties:
                  links:
                    type: object
                    required:
                    - self
                    - first
                    - last
                    properties:
                      self:
                        description: URI of the current result set
                        type: string
                        format: uri
                      first:
                        description: URI of the first page of results
                        type: string
                        format: uri
                      last:
                        description: URI of the last page of results
                        type: string
                        format: uri
                      prev:
                        description: URI of the previous page of results (if 
                          any)
                        type: string
                        format: uri
                        nullable: true
                      next:
                        description: URI of the next page results (if any)
                        type: string
                        format: uri
                        nullable: true
                  data:
                    type: array
                    items: *id030
  /theme:
    get:
      summary: Get a list of available themes for media assets with search, 
        paging, and filtering
      operationId: getThemes
      parameters:
      - name: search
        in: query
        description: "Search by theme name and description. A trailing wildcard is
          used in search\nto \"complete\" the entered value."
        schema:
          type: string
          example: In The Fi
          maxLength: 200
      - name: page
        in: query
        description: Page number of results
        schema:
          type: integer
          default: 1
      - name: limit
        in: query
        description: Limit of results per page
        schema:
          type: integer
          default: 50
      tags:
      - theme
      responses:
        '200':
          description: An array of Theme objects
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - links
                - data
                properties:
                  links:
                    type: object
                    required:
                    - self
                    - first
                    - last
                    properties:
                      self:
                        description: URI of the current result set
                        type: string
                        format: uri
                      first:
                        description: URI of the first page of results
                        type: string
                        format: uri
                      last:
                        description: URI of the last page of results
                        type: string
                        format: uri
                      prev:
                        description: URI of the previous page of results (if 
                          any)
                        type: string
                        format: uri
                        nullable: true
                      next:
                        description: URI of the next page results (if any)
                        type: string
                        format: uri
                        nullable: true
                  data:
                    type: array
                    items: *id031
  /theme/{id}:
    parameters:
    - name: id
      in: path
      description: Theme ID
      required: true
      schema:
        type: string
    get:
      summary: Get a theme by id
      operationId: getTheme
      tags:
      - theme
      responses:
        '200':
          description: A Theme object
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                properties:
                  data: *id031
        '404': *id003
