Cloudsmith files API

The files API from Cloudsmith — 5 operation(s) for files.

OpenAPI Specification

cloudsmith-files-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  title: Cloudsmith API (v1) audit-log files API
  description: The API to the Cloudsmith Service
  termsOfService: https://help.cloudsmith.io
  contact:
    name: Cloudsmith Support
    url: https://help.cloudsmith.io
    email: support@cloudsmith.io
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  version: v1
host: api.cloudsmith.io
basePath: /
schemes:
- https
consumes:
- application/json
produces:
- application/json
security:
- apikey: []
- basic: []
tags:
- name: files
paths:
  /files/{owner}/{repo}/:
    parameters:
    - name: owner
      in: path
      required: true
      type: string
    - name: repo
      in: path
      required: true
      type: string
    post:
      operationId: files_create
      summary: Request URL(s) to upload new package file upload(s) to.
      description: Request URL(s) to upload new package file upload(s) to.
      parameters:
      - name: data
        in: body
        required: false
        schema:
          $ref: '#/definitions/PackageFileUploadRequest'
      responses:
        '202':
          description: The upload request was accepted
          schema:
            $ref: '#/definitions/PackageFileUpload'
        '404':
          description: Namespace (owner) or repository not found
          schema:
            $ref: '#/definitions/ErrorDetail'
        '400':
          description: Request could not be processed (see detail).
          schema:
            $ref: '#/definitions/ErrorDetail'
        '422':
          description: Missing or invalid parameters (see detail).
          schema:
            $ref: '#/definitions/ErrorDetail'
      tags:
      - files
  /files/{owner}/{repo}/validate/:
    parameters:
    - name: owner
      in: path
      required: true
      type: string
    - name: repo
      in: path
      required: true
      type: string
    post:
      operationId: files_validate
      summary: Validate parameters used for create.
      description: Validate parameters used for create.
      parameters:
      - name: data
        in: body
        required: false
        schema:
          $ref: '#/definitions/PackageFileUploadRequest'
      responses:
        '204':
          description: Validation was successful, parameters are OK.
        '404':
          description: Namespace (owner) or repository not found
          schema:
            $ref: '#/definitions/ErrorDetail'
        '400':
          description: Request could not be processed (see detail).
          schema:
            $ref: '#/definitions/ErrorDetail'
        '422':
          description: Missing or invalid parameters (see detail).
          schema:
            $ref: '#/definitions/ErrorDetail'
      tags:
      - files
  /files/{owner}/{repo}/{identifier}/abort/:
    parameters:
    - name: owner
      in: path
      required: true
      type: string
    - name: repo
      in: path
      required: true
      type: string
    - name: identifier
      in: path
      required: true
      type: string
    post:
      operationId: files_abort
      summary: Abort a multipart file upload.
      description: Abort a multipart file upload.
      parameters:
      - name: data
        in: body
        required: false
        schema:
          $ref: '#/definitions/PackageFileUploadRequest'
      responses:
        '204':
          description: The multipart upload was aborted successfully.
        '400':
          description: The multipart upload could not be aborted.
          schema:
            $ref: '#/definitions/ErrorDetail'
        '404':
          description: Namespace (owner), repository or upload file not found
          schema:
            $ref: '#/definitions/ErrorDetail'
        '422':
          description: Missing or invalid parameters (see detail).
          schema:
            $ref: '#/definitions/ErrorDetail'
      tags:
      - files
  /files/{owner}/{repo}/{identifier}/complete/:
    parameters:
    - name: owner
      in: path
      required: true
      type: string
    - name: repo
      in: path
      required: true
      type: string
    - name: identifier
      in: path
      required: true
      type: string
    post:
      operationId: files_complete
      summary: Complete a multipart file upload.
      description: Complete a multipart file upload.
      parameters:
      - name: data
        in: body
        required: false
        schema:
          $ref: '#/definitions/PackageFileUploadRequest'
      responses:
        '201':
          description: The multipart upload was completed successfully.
          schema:
            $ref: '#/definitions/PackageFileUpload'
        '400':
          description: The multipart upload could not be completed.
          schema:
            $ref: '#/definitions/ErrorDetail'
        '404':
          description: Namespace (owner), repository or upload file not found
          schema:
            $ref: '#/definitions/ErrorDetail'
        '422':
          description: Missing or invalid parameters (see detail).
          schema:
            $ref: '#/definitions/ErrorDetail'
      tags:
      - files
  /files/{owner}/{repo}/{identifier}/info/:
    parameters:
    - name: owner
      in: path
      required: true
      type: string
    - name: repo
      in: path
      required: true
      type: string
    - name: identifier
      in: path
      required: true
      type: string
    get:
      operationId: files_info
      summary: Get upload information to perform a multipart file upload.
      description: Get upload information to perform a multipart file upload.
      parameters:
      - name: filename
        in: query
        description: The filename of the file being uploaded
        required: true
        type: string
      - name: part_number
        in: query
        description: The part number to be uploaded next
        required: false
        type: integer
      responses:
        '200':
          description: Information for multipart uploaded retrieved successfully.
          schema:
            $ref: '#/definitions/PackageFilePartsUpload'
        '400':
          description: The provided upload file was not a multipart upload.
          schema:
            $ref: '#/definitions/ErrorDetail'
        '404':
          description: Namespace (owner), repository or upload file not found
          schema:
            $ref: '#/definitions/ErrorDetail'
        '422':
          description: Missing or invalid parameters (see detail).
          schema:
            $ref: '#/definitions/ErrorDetail'
      tags:
      - files
definitions:
  PackageFilePartsUpload:
    type: object
    properties:
      identifier:
        title: Identifier
        description: The identifier for the file to use uploading parts.
        type: string
        format: uri
        readOnly: true
        minLength: 1
      upload_querystring:
        title: Upload querystring
        description: The querystring to use for the next-step PUT upload.
        type: string
        readOnly: true
        minLength: 1
        x-nullable: true
      upload_url:
        title: Upload url
        description: The URL to use for the next-step PUT upload
        type: string
        format: uri
        readOnly: true
        minLength: 1
  ErrorDetail:
    required:
    - detail
    type: object
    properties:
      detail:
        title: Detail
        description: An extended message for the response.
        type: string
        minLength: 1
      fields:
        title: Fields
        description: 'A Dictionary of related errors where key: Field and value: Array of Errors related to that field'
        type: object
        additionalProperties:
          type: array
          items:
            type: string
            minLength: 1
  PackageFileUpload:
    type: object
    properties:
      identifier:
        title: Identifier
        description: The identifier for the file to use when creating packages
        type: string
        format: uri
        readOnly: true
        minLength: 1
      upload_fields:
        title: Upload fields
        description: The dictionary of fields that must be sent with POST uploads
        type: object
        readOnly: true
        x-nullable: true
      upload_headers:
        title: Upload headers
        description: The dictionary of headers that must be sent with uploads
        type: object
        readOnly: true
        x-nullable: true
      upload_querystring:
        title: Upload querystring
        description: The querystring to use for the next-step POST or PUT upload
        type: string
        readOnly: true
        minLength: 1
        x-nullable: true
      upload_url:
        title: Upload url
        description: The URL to use for the next-step POST or PUT upload
        type: string
        format: uri
        readOnly: true
        minLength: 1
  PackageFileUploadRequest:
    required:
    - filename
    type: object
    properties:
      filename:
        title: Filename
        description: Filename for the package file upload.
        type: string
        minLength: 1
      md5_checksum:
        title: Md5 checksum
        description: MD5 checksum for a POST-based package file upload.
        type: string
        maxLength: 32
        minLength: 32
      method:
        title: Method
        description: The method to use for package file upload.
        type: string
        enum:
        - put_parts
        - put
        - post
        - presigned
        - unsigned_put
        default: post
      sha256_checksum:
        title: Sha256 checksum
        description: SHA256 checksum for a PUT-based package file upload.
        type: string
        maxLength: 64
        minLength: 64
securityDefinitions:
  apikey:
    type: apiKey
    name: X-Api-Key
    in: header
  basic:
    type: basic