openapi: 3.0.0 info: contact: email: cdis@uchicago.edu description: A data submission API for CDIS Gen 3 data commons. Code is available on [GitHub](https://github.com/uc-cdis/sheepdog). license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html termsOfService: http://cdis.uchicago.edu/terms/ title: Sheepdog OpenAPI Specification version: '1.0' servers: - url: / paths: /_status: get: responses: '200': description: Healthy default: description: Unhealthy summary: Health check endpoint tags: - system /_version: get: responses: '200': description: successful operation summary: Returns the version of Sheepdog tags: - system /v0/submission/: get: description: Return the available resources at the top level above programs i.e. registered programs. responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/schema_links' '403': description: Unauthorized request. summary: Get the programs tags: - program patch: description: Register a program. The content of the request is a JSON containing the information describing a program. Authorization for registering programs is limited to administrative users. responses: '200': description: Registered successfully. '403': description: Unauthorized request. summary: Create a program tags: - program requestBody: content: application/json: schema: $ref: '#/components/schemas/schema_program' description: input body post: description: Register a program. The content of the request is a JSON containing the information describing a program. Authorization for registering programs is limited to administrative users. responses: '200': description: Registered successfully. '403': description: Unauthorized request. summary: Create a program tags: - program requestBody: content: application/json: schema: $ref: '#/components/schemas/schema_program' description: input body put: description: Register a program. The content of the request is a JSON containing the information describing a program. Authorization for registering programs is limited to administrative users. responses: '200': description: Registered successfully. '403': description: Unauthorized request. summary: Create a program tags: - program requestBody: content: application/json: schema: $ref: '#/components/schemas/schema_program' description: input body /v0/submission/: delete: description: Delete a program given program name. If the program is not empty raise an appropriate exception parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string responses: '204': description: Success. '400': description: User error. '403': description: Unauthorized request. '404': description: Program not found. summary: Delete a program tags: - program get: description: Return the available resources at the top level of program ``program``, i.e. registered projects. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/schema_links' '403': description: Unauthorized request. '404': description: Program not found. summary: Get the projects tags: - project patch: description: Register a project. The content of the request is a JSON containing the information describing a project. Authorization for registering projects is limited to administrative users. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string responses: '200': description: Registered successfully. '400': description: User error. '403': description: Unauthorized request. '404': description: Program not found. summary: Create a project tags: - project requestBody: content: application/json: schema: $ref: '#/components/schemas/schema_project' description: input body post: description: Register a project. The content of the request is a JSON containing the information describing a project. Authorization for registering projects is limited to administrative users. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string responses: '200': description: Registered successfully. '400': description: User error. '403': description: Unauthorized request. '404': description: Program not found. summary: Create a project tags: - project requestBody: content: application/json: schema: $ref: '#/components/schemas/schema_project' description: input body put: description: Register a project. The content of the request is a JSON containing the information describing a project. Authorization for registering projects is limited to administrative users. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string responses: '200': description: Registered successfully. '400': description: User error. '403': description: Unauthorized request. '404': description: Program not found. summary: Create a project tags: - project requestBody: content: application/json: schema: $ref: '#/components/schemas/schema_project' description: input body /v0/submission//: delete: description: Delete project under a specific program parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '204': description: Success. '400': description: User error. '403': description: Unauthorized request. '404': description: Resource not found. summary: Delete a project tags: - project post: description: Create or update any valid entities specified in the request body. To associate an entity with an existing, already indexed data file, specify the `object_id` in the body of the entity. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: application/json (default), text/tab-separated-values, text/tsv or text/csv in: header name: Content-Type schema: type: string responses: '201': description: Entities created successfully '400': description: At least one entity was invalid. '404': description: Resource not found. summary: Create entities tags: - entity requestBody: content: application/json: schema: $ref: '#/components/schemas/schema_entity' description: input body put: description: Create or update any valid entities specified in the request body. To associate an entity with an existing, already indexed data file, specify the `object_id` in the body of the entity. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: application/json (default), text/tab-separated-values, text/tsv or text/csv in: header name: Content-Type schema: type: string responses: '201': description: Entities created successfully '400': description: At least one entity was invalid. '404': description: Resource not found. summary: Update entities tags: - entity requestBody: content: application/json: schema: $ref: '#/components/schemas/schema_entity' description: input body /v0/submission///_dictionary: get: description: Return links to the project level JSON schema definitions. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/schema_links' '403': description: Unauthorized request. summary: Get the dictionary schema for entities of a project tags: - dictionary /v0/submission///_dictionary/: get: description: Get the dictionary entry for a specific project. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: entity type to retrieve the schema for (e.g. ``aliquot``) in: path name: entry required: true schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/schema_entity' '403': description: Unauthorized request. '404': description: Resource not found. summary: Get the dictionary schema for an entity of a project tags: - dictionary /v0/submission///_dry_run: post: description: Create or update any valid entities specified in the request body. To associate an entity with an existing, already indexed data file, specify the `object_id` in the body of the entity. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: application/json (default), text/tab-separated-values, text/tsv or text/csv in: header name: Content-Type schema: type: string responses: '201': description: Entities created successfully '400': description: At least one entity was invalid. '404': description: Resource not found. summary: Create entities tags: - dry run requestBody: content: application/json: schema: $ref: '#/components/schemas/schema_entity' description: input body put: description: Create or update any valid entities specified in the request body. To associate an entity with an existing, already indexed data file, specify the `object_id` in the body of the entity. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: application/json (default), text/tab-separated-values, text/tsv or text/csv in: header name: Content-Type schema: type: string responses: '201': description: Entities created successfully '400': description: At least one entity was invalid. '404': description: Resource not found. summary: Update entities tags: - dry run requestBody: content: application/json: schema: $ref: '#/components/schemas/schema_entity' description: input body /v0/submission///bulk: post: description: Handle bulk transaction instead of single transaction. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '201': description: Entities created successfully '400': description: At least one entity was invalid. '404': description: Resource not found. summary: Create entities in bulk tags: - entity requestBody: content: application/json: schema: $ref: '#/components/schemas/schema_entity_bulk' description: input body put: description: Handle bulk transaction instead of single transaction. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '201': description: Entities created successfully '400': description: At least one entity was invalid. '404': description: Resource not found. summary: Update entities in bulk tags: - entity requestBody: content: application/json: schema: $ref: '#/components/schemas/schema_entity_bulk' description: input body /v0/submission///bulk/_dry_run: post: description: Handle bulk transaction instead of single transaction. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '201': description: Entities created successfully '400': description: At least one entity was invalid. '404': description: Resource not found. summary: Create entities in bulk tags: - dry run requestBody: content: application/json: schema: $ref: '#/components/schemas/schema_entity_bulk' description: input body put: description: Handle bulk transaction instead of single transaction. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '201': description: Entities created successfully '400': description: At least one entity was invalid. '404': description: Resource not found. summary: Update entities in bulk tags: - dry run requestBody: content: application/json: schema: $ref: '#/components/schemas/schema_entity_bulk' description: input body /v0/submission///entities/: get: description: Retrieve existing entities by ID. The return type of a HTTP `get` on this endpoint is a JSON array containing JSON object elements, each corresponding to a provided ID. Return results are unordered. If any ID is not found in the database, a status code of 404 is returned with the missing IDs. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: A comma-separated list of ids specifying the entities to retrieve. in: path name: entity_id_string required: true schema: type: string responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/schema_entity_list' '400': description: User error. '403': description: Unauthorized request. '404': description: Entity not found. summary: Get entities by ID tags: - entity /v0/submission///entities/: delete: description: Delete existing entities. Using the :http:method:`delete` on a project's endpoint will *completely delete* an entity. The Gen3 commons does not allow deletions or creations that would leave nodes without parents, i.e. nodes that do not have an entity from which they were derived. To prevent catastrophic mistakes, the current philosophy is to disallow automatic cascading of deletes. However, to inform a user which entities must be deleted for the target entity to be deleted, the API will respond with at least one entity that must be deleted prior to deleting the target entity. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: A comma separated list of ids specifying the entities to delete. These ids must be official ids. in: path name: ids required: true schema: type: string - description: Set the to_delete sysan as true or false. If none, then don't try to set the sysan, and instead delete the node. in: query name: to_delete schema: type: boolean responses: '200': description: Entities deleted successfully '400': description: User error. '403': description: Unauthorized request. '404': description: Entity not found. summary: Delete entities tags: - entity /v0/submission///entities/_dry_run/: delete: description: Delete existing entities. Using the :http:method:`delete` on a project's endpoint will *completely delete* an entity. The Gen3 commons does not allow deletions or creations that would leave nodes without parents, i.e. nodes that do not have an entity from which they were derived. To prevent catastrophic mistakes, the current philosophy is to disallow automatic cascading of deletes. However, to inform a user which entities must be deleted for the target entity to be deleted, the API will respond with at least one entity that must be deleted prior to deleting the target entity. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: A comma separated list of ids specifying the entities to delete. These ids must be official ids. in: path name: ids required: true schema: type: string - description: Set the to_delete sysan as true or false. If none, then don't try to set the sysan, and instead delete the node. in: query name: to_delete schema: type: boolean responses: '200': description: Entities deleted successfully '400': description: User error. '403': description: Unauthorized request. '404': description: Entity not found. summary: Delete entities tags: - dry run /v0/submission///export: get: description: 'Return a file with the requested entities as an attachment. Either ``ids`` or ``node_label`` must be provided in the parameters. When both are provided, ``node_label`` is ignored and ``ids`` is used. If ``ids`` is provided, all entities matching given ``ids`` will be exported. If there is only one entity type in the output, it will return a ``{node_type}.tsv`` or ``{node_type}.json`` file, e.g.: ``aliquot.tsv``. If there are multiple entity types, it returns ``gdc_export_{one_time_sha}.tar.gz`` for TSV format, or ``gdc_export_{one_time_sha}.json`` for JSON format. CSV is similar to TSV. If ``node_label`` is provided, it will export all entities of type with name ``node_label`` to a TSV file or JSON file. CSV is not supported yet in this case.' parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: one or a list of node IDs seperated by commas. in: query name: ids schema: type: string - description: type of nodes to look up, for example ``'case'`` in: query name: node_label schema: type: string - description: output format, ``json`` or ``tsv`` or ``csv``; default is ``tsv`` in: query name: format schema: type: string - description: whether to recursively find children or not; default is False in: query name: with_children schema: type: string - description: 'category of node to filter on children. Example: ``clinical``' in: query name: category schema: type: string - description: whether to include the ids in the export file; default is False in: query name: without_id schema: type: boolean responses: '200': description: Success '400': description: Bad Request '403': description: Unauthorized request. '404': description: No id is found summary: Export entities tags: - export post: description: 'Return a file with the requested entities as an attachment. Either ``ids`` or ``node_label`` must be provided in the parameters. When both are provided, ``node_label`` is ignored and ``ids`` is used. If ``ids`` is provided, all entities matching given ``ids`` will be exported. If there is only one entity type in the output, it will return a ``{node_type}.tsv`` or ``{node_type}.json`` file, e.g.: ``aliquot.tsv``. If there are multiple entity types, it returns ``gdc_export_{one_time_sha}.tar.gz`` for TSV format, or ``gdc_export_{one_time_sha}.json`` for JSON format. CSV is similar to TSV. If ``node_label`` is provided, it will export all entities of type with name ``node_label`` to a TSV file or JSON file. CSV is not supported yet in this case.' parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: one or a list of node IDs seperated by commas. in: query name: ids schema: type: string - description: type of nodes to look up, for example ``'case'`` in: query name: node_label schema: type: string - description: output format, ``json`` or ``tsv`` or ``csv``; default is ``tsv`` in: query name: format schema: type: string - description: whether to recursively find children or not; default is False in: query name: with_children schema: type: string - description: 'category of node to filter on children. Example: ``clinical``' in: query name: category schema: type: string - description: whether to include the ids in the export file; default is False in: query name: without_id schema: type: boolean responses: '200': description: Success '400': description: Bad Request '403': description: Unauthorized request. '404': description: No id is found summary: Export entities tags: - export /v0/submission///files/: delete: description: Delete molecular data from object storage. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: The id of the file to upload. in: path name: uuid required: true schema: type: string - description: to abort a multipart upload in: query name: uploadId schema: type: string responses: '200': description: Success. '400': description: Bad Request '403': description: Unauthorized request. '404': description: File not found. '405': description: Method Not Allowed. summary: Delete a data file tags: - file get: description: Get a data file from object storage parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: The id of the file to upload. in: path name: uuid required: true schema: type: string - description: to list parts in: query name: uploadId schema: type: string responses: '200': description: Success. '400': description: Bad Request '403': description: Unauthorized request. '404': description: File not found. '405': description: Method Not Allowed. summary: Get a data file tags: - file post: description: Upload data by multipart upload parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: The id of the file to upload. in: path name: uuid required: true schema: type: string - description: to initiate multipart upload in: query name: uploads schema: type: string - description: to complete multipart upload in: query name: uploadId schema: type: string responses: '200': description: Success. '400': description: Bad Request '403': description: Unauthorized request. '404': description: File not found. '405': description: Method Not Allowed. summary: Upload data by multipart upload tags: - file put: description: Upload data using single PUT. The request body should contain binary data of the file. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: The id of the file to upload. in: path name: uuid required: true schema: type: string - description: to upload part (use with uploadId) in: query name: partNumber schema: type: string - description: to upload part (use with partNumber) in: query name: uploadId schema: type: string responses: '200': description: Success. '400': description: Bad Request '403': description: Unauthorized request. '404': description: File not found. '405': description: Method Not Allowed. summary: Upload a data file tags: - file /v0/submission///files//_dry_run: delete: description: Delete molecular data from object storage. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: The id of the file to upload. in: path name: uuid required: true schema: type: string - description: to abort a multipart upload in: query name: uploadId schema: type: string responses: '200': description: Success. '400': description: Bad Request '403': description: Unauthorized request. '404': description: File not found. '405': description: Method Not Allowed. summary: Delete a data file tags: - dry run get: description: Get a data file from object storage parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: The id of the file to upload. in: path name: uuid required: true schema: type: string - description: to list parts in: query name: uploadId schema: type: string responses: '200': description: Success. '400': description: Bad Request '403': description: Unauthorized request. '404': description: File not found. '405': description: Method Not Allowed. summary: Get a data file tags: - dry run post: description: Upload data by multipart upload parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: The id of the file to upload. in: path name: uuid required: true schema: type: string - description: to initiate multipart upload in: query name: uploads schema: type: string - description: to complete multipart upload in: query name: uploadId schema: type: string responses: '200': description: Success. '400': description: Bad Request '403': description: Unauthorized request. '404': description: File not found. '405': description: Method Not Allowed. summary: Upload data by multipart upload tags: - dry run put: description: Upload data using single PUT. The request body should contain binary data of the file. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: The id of the file to upload. in: path name: uuid required: true schema: type: string - description: to upload part (use with uploadId) in: query name: partNumber schema: type: string - description: to upload part (use with partNumber) in: query name: uploadId schema: type: string responses: '200': description: Success. '400': description: Bad Request '403': description: Unauthorized request. '404': description: File not found. '405': description: Method Not Allowed. summary: Upload a data file tags: - dry run /v0/submission///manifest: get: description: Create a json manifest of the files. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '200': description: Success '400': description: User error. '403': description: Unauthorized request. '404': description: Resource not found. summary: Get a manifest of data files tags: - file /v0/submission///open: post: description: Mark a project ``open``. Opening a project means uploads, deletions, etc. are allowed. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '200': description: Success '403': description: Unauthorized request. '404': description: Resource not found. summary: Open a project tags: - project put: description: Mark a project ``open``. Opening a project means uploads, deletions, etc. are allowed. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '200': description: Success '403': description: Unauthorized request. '404': description: Resource not found. summary: Open a project tags: - project /v0/submission///open/_dry_run: post: description: Mark a project ``open``. Opening a project means uploads, deletions, etc. are allowed. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '200': description: Success '403': description: Unauthorized request. '404': description: Resource not found. summary: Open a project tags: - dry run put: description: Mark a project ``open``. Opening a project means uploads, deletions, etc. are allowed. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '200': description: Success '403': description: Unauthorized request. '404': description: Resource not found. summary: Open a project tags: - dry run /v0/submission///release: post: description: Release a project. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '200': description: Success '403': description: Unauthorized request. '404': description: Resource not found. summary: Release a project tags: - project put: description: Release a project. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '200': description: Success '403': description: Unauthorized request. '404': description: Resource not found. summary: Release a project tags: - project /v0/submission///release/_dry_run: post: description: Release a project. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '200': description: Success '403': description: Unauthorized request. '404': description: Resource not found. summary: Release a project tags: - dry run put: description: Release a project. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '200': description: Success '403': description: Unauthorized request. '404': description: Resource not found. summary: Release a project tags: - dry run /v0/submission///review: post: description: Mark a project project for review. Reviewing a project means uploads are locked. An ``open`` or ``submit`` action must be taken after ``review``. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '200': description: Success '403': description: Unauthorized request. '404': description: Resource not found. summary: Review a project tags: - project put: description: Mark a project project for review. Reviewing a project means uploads are locked. An ``open`` or ``submit`` action must be taken after ``review``. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '200': description: Success '403': description: Unauthorized request. '404': description: Resource not found. summary: Review a project tags: - project /v0/submission///review/_dry_run: post: description: Mark a project project for review. Reviewing a project means uploads are locked. An ``open`` or ``submit`` action must be taken after ``review``. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '200': description: Success '403': description: Unauthorized request. '404': description: Resource not found. summary: Review a project tags: - dry run put: description: Mark a project project for review. Reviewing a project means uploads are locked. An ``open`` or ``submit`` action must be taken after ``review``. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '200': description: Success '403': description: Unauthorized request. '404': description: Resource not found. summary: Review a project tags: - dry run /v0/submission///submit: post: description: Submit a project. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '200': description: Project submitted successfully '403': description: Unauthorized request. '404': description: Resource not found. summary: Submit a project tags: - project put: description: Submit a project. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '200': description: Project submitted successfully '403': description: Unauthorized request. '404': description: Resource not found. summary: Submit a project tags: - project /v0/submission///submit/_dry_run: post: description: Submit a project. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '200': description: Project submitted successfully '403': description: Unauthorized request. '404': description: Resource not found. summary: Submit a project tags: - dry run put: description: Submit a project. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '200': description: Project submitted successfully '403': description: Unauthorized request. '404': description: Resource not found. summary: Submit a project tags: - dry run /v0/submission///template: get: description: Get templates for all entity types. In the template, Links are represented as {link_type}.{link_unique_key} for one_to_one and many_to_one relationships. For many_to_many relationships, they are represented as {link_type}.{link_unique_key}#1 to infer user the multiplicity parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: output format, ``csv`` or ``tsv``, default is tsv in: query name: format schema: type: string - description: list of entities' categories to include in the template in: query name: categories schema: type: string - description: list of entities' categories to exclude from the template in: query name: exclude schema: type: string responses: '200': description: Success '404': description: Resource not found. summary: Get templates for all entity types of a project tags: - dictionary /v0/submission///template/: get: description: Return TSV template of an entity type. In the template, links are represented as {link_type}.{link_unique_key} for one_to_one and many_to_one relationships. For many_to_many relationships, they are represented as {link_type}.{link_unique_key}#1 to infer user the multiplicity. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: type of the entity in: path name: entity required: true schema: type: string - description: output format, ``csv`` or ``tsv``, default is tsv in: query name: format schema: type: string responses: '200': description: Success '404': description: Entity type is not found summary: Get a template for an entity type of a project tags: - dictionary /v0/submission///transactions//close: post: description: Close a transaction. The transaction is prevented from being committed in the future. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: transaction_id in: path name: transaction_id required: true schema: type: integer responses: '200': description: Success '403': description: Unauthorized request. '404': description: Resource not found. summary: Close a transaction tags: - dry run put: description: Close a transaction. The transaction is prevented from being committed in the future. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: transaction_id in: path name: transaction_id required: true schema: type: integer responses: '200': description: Success '403': description: Unauthorized request. '404': description: Resource not found. summary: Close a transaction tags: - dry run /v0/submission///transactions//commit: post: description: 'Commit a dry run transaction. This call should only succeed if: 1. transaction_id points to a dry_run transaction; 2. transaction_id points to a transaction that hasn''t been committed already; 3. transaction_id points to a successful transaction.' parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: transaction_id in: path name: transaction_id required: true schema: type: integer responses: '200': description: Success. '403': description: Unauthorized request. '404': description: Resource not found. summary: Commit a dry run transaction tags: - dry run put: description: 'Commit a dry run transaction. This call should only succeed if: 1. transaction_id points to a dry_run transaction; 2. transaction_id points to a transaction that hasn''t been committed already; 3. transaction_id points to a successful transaction.' parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: transaction_id in: path name: transaction_id required: true schema: type: integer responses: '200': description: Success. '403': description: Unauthorized request. '404': description: Resource not found. summary: Commit a dry run transaction tags: - dry run /v0/submission///upload_manifest: get: description: Create a json manifest of the files. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '200': description: Success '400': description: User error. '403': description: Unauthorized request. '404': description: Resource not found. summary: Get a manifest of data files tags: - file /v0/submission///xml/biospecimen/bcr: put: description: The entities stored in BRC XML are converted to JSON before being updated. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '200': description: Success. '403': description: Unauthorized request. '404': description: Resource not found. summary: Update Biospecimen Supplement entities tags: - entity requestBody: content: multipart/form-data: schema: type: object properties: file: type: string format: binary required: - file /v0/submission///xml/biospecimen/bcr/_dry_run: put: description: The entities stored in BRC XML are converted to JSON before being updated. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '200': description: Success. '403': description: Unauthorized request. '404': description: Resource not found. summary: Update Biospecimen Supplement entities tags: - dry run requestBody: content: multipart/form-data: schema: type: object properties: file: type: string format: binary required: - file /v0/submission///xml/clinical/bcr: put: description: The entities stored in BRC XML are converted to JSON before being updated. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '200': description: Success. '403': description: Unauthorized request. '404': description: Resource not found. summary: Update Clinical Supplement entities tags: - entity requestBody: content: multipart/form-data: schema: type: object properties: file: type: string format: binary required: - file /v0/submission///xml/clinical/bcr/_dry_run: put: description: The entities stored in BRC XML are converted to JSON before being updated. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string responses: '200': description: Success. '403': description: Unauthorized request. '404': description: Resource not found. summary: Update Clinical Supplement entities tags: - dry run requestBody: content: multipart/form-data: schema: type: object properties: file: type: string format: binary required: - file /v0/submission/_dictionary: get: description: Return links to the JSON schema definitions. responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/schema_links' '403': description: Unauthorized request. summary: Get the dictionary schema tags: - dictionary /v0/submission/_dictionary/: get: description: Return the project level JSON schema definition for a given entity type. parameters: - description: entity type to retrieve the schema for (e.g. ``aliquot``) in: path name: entry required: true schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/schema_entity' '403': description: Unauthorized request. '404': description: Resource not found. summary: Get the dictionary schema for an entity tags: - dictionary /v0/submission/admin///entities//to_delete/: delete: description: Delete existing entities. Using the :http:method:`delete` on a project's endpoint will *completely delete* an entity. The Gen3 commons does not allow deletions or creations that would leave nodes without parents, i.e. nodes that do not have an entity from which they were derived. To prevent catastrophic mistakes, the current philosophy is to disallow automatic cascading of deletes. However, to inform a user which entities must be deleted for the target entity to be deleted, the API will respond with at least one entity that must be deleted prior to deleting the target entity. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: A comma separated list of ids specifying the entities to delete. These ids must be official ids. in: path name: ids required: true schema: type: string - description: Set the to_delete sysan as true or false. If none, then don't try to set the sysan, and instead delete the node. in: query name: to_delete schema: type: boolean responses: '200': description: Entities deleted successfully '400': description: User error. '403': description: Unauthorized request. '404': description: Entity not found. summary: Delete entities tags: - entity /v0/submission/admin///files//reassign: put: description: Manually (re)assign the S3 url for a given node. parameters: - description: The program to which the submitter belongs and in which the entities will be created. The `program` is the human-readable name, e.g. TCGA. in: path name: program required: true schema: type: string - description: The project to which the submitter belongs and in which the entities will be created. The `project` is the human-readable code, e.g. BRCA. in: path name: project required: true schema: type: string - description: The id of the file to upload. in: path name: uuid required: true schema: type: string responses: '200': description: Success. '400': description: Bad Request '403': description: Unauthorized request. '404': description: File not found. '405': description: Method Not Allowed. summary: Reassign the S3 URL of a data file tags: - file /v0/submission/template: get: description: Get templates for all entity types. parameters: - description: output format, ``csv`` or ``tsv``, default is tsv in: query name: format schema: type: string - description: list of entities' categories to include in the template in: query name: categories schema: type: string - description: list of entities' categories to exclude from the template in: query name: exclude schema: type: string responses: '200': description: Success. summary: Get templates for all entity types tags: - dictionary /v0/submission/template/: get: description: Get a template for an entity type. parameters: - description: entity in: path name: entity required: true schema: type: string responses: '200': description: Success. summary: Get a template for an entity type tags: - dictionary /v0/submission/validation/upload_manifest: post: description: Generate a list of errors found in JSON Schema validation. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/schema_error_list' summary: Validate a manifest of data files tags: - file components: schemas: schema_entity: properties: '...fields specific to this entity': type: string type: type: string type: object schema_entity_bulk: properties: doc: type: string doc_format: type: string name: type: string required: - name - doc_format - doc type: object schema_entity_list: items: $ref: '#/components/schemas/schema_entity' type: array schema_error_list: items: type: string type: array schema_links: properties: links: items: type: string type: array required: - links type: object schema_program: properties: dbgap_accession_number: type: string name: type: string type: type: string required: - name - dbgap_accession_number type: object schema_project: properties: code: type: string dbgap_accession_number: type: string investigator_name: type: string name: type: string type: type: string required: - name - code type: object