diff --git a/NOTICE b/NOTICE index 6de137fc48..4fa5d14ee4 100644 --- a/NOTICE +++ b/NOTICE @@ -79,33 +79,6 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -Django REST Swagger -------------------------------------------------------- - -Copyright (c) 2013-2016, Marc Gibbons -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Twitter bootstrap ------------------------------------------------------- diff --git a/django-rest-swagger.yaml b/django-rest-swagger.yaml new file mode 100644 index 0000000000..266bace9fb --- /dev/null +++ b/django-rest-swagger.yaml @@ -0,0 +1,7954 @@ +# Note: this file was generated as json with django-rest-swagger and converted to yaml +swagger: "2.0" +info: + title: RDMO API + description: "" + version: "" +paths: + /api/v1/accounts/users/: + get: + operationId: accounts_users_list + responses: + "200": + description: "" + parameters: + - name: username + required: false + in: query + description: "" + type: string + - name: first_name + required: false + in: query + description: "" + type: string + - name: last_name + required: false + in: query + description: "" + type: string + - name: email + required: false + in: query + description: "" + type: string + - name: groups + required: false + in: query + description: "" + type: string + tags: + - accounts + /api/v1/accounts/users/current/: + get: + operationId: accounts_users_current + responses: + "200": + description: "" + parameters: [] + tags: + - accounts + /api/v1/accounts/users/{id}/: + get: + operationId: accounts_users_read + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: username + required: false + in: query + description: "" + type: string + - name: first_name + required: false + in: query + description: "" + type: string + - name: last_name + required: false + in: query + description: "" + type: string + - name: email + required: false + in: query + description: "" + type: string + - name: groups + required: false + in: query + description: "" + type: string + tags: + - accounts + /api/v1/conditions/conditions/: + get: + operationId: conditions_conditions_list + responses: + "200": + description: "" + parameters: + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: source + required: false + in: query + description: "" + type: string + - name: relation + required: false + in: query + description: "" + type: string + - name: target_text + required: false + in: query + description: "" + type: string + - name: target_option + required: false + in: query + description: "" + type: string + tags: + - conditions + post: + operationId: conditions_conditions_create + responses: + "201": + description: "" + parameters: + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this condition (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this condition. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this condition. + type: string + locked: + description: Designates whether this condition can be changed. + type: boolean + editors: + description: The sites that can edit this condition (in a multi site setup). + type: array + items: + type: string + source: + description: "" + type: integer + relation: + description: The relation this condition is using. + type: string + target_text: + description: If using a regular value, the text value this condition is checking + against (for boolean values use 1 and 0). + type: string + target_option: + description: If using a value pointing to an option, the option this condition + is checking against. + type: integer + optionsets: + description: "" + type: array + items: + type: string + pages: + description: "" + type: array + items: + type: string + questionsets: + description: "" + type: array + items: + type: string + questions: + description: "" + type: array + items: + type: string + tasks: + description: "" + type: array + items: + type: string + required: + - uri_prefix + - uri_path + - source + - relation + consumes: + - application/json + tags: + - conditions + /api/v1/conditions/conditions/export{var}/: + get: + operationId: conditions_export + responses: + "200": + description: "" + parameters: + - name: var + required: true + in: path + description: "" + type: string + tags: + - conditions + /api/v1/conditions/conditions/index/: + get: + operationId: conditions_conditions_index + responses: + "200": + description: "" + parameters: [] + tags: + - conditions + /api/v1/conditions/conditions/{id}/: + get: + operationId: conditions_conditions_read + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Condition. + type: integer + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: source + required: false + in: query + description: "" + type: string + - name: relation + required: false + in: query + description: "" + type: string + - name: target_text + required: false + in: query + description: "" + type: string + - name: target_option + required: false + in: query + description: "" + type: string + tags: + - conditions + put: + operationId: conditions_conditions_update + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Condition. + type: integer + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: source + required: false + in: query + description: "" + type: string + - name: relation + required: false + in: query + description: "" + type: string + - name: target_text + required: false + in: query + description: "" + type: string + - name: target_option + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this condition (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this condition. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this condition. + type: string + locked: + description: Designates whether this condition can be changed. + type: boolean + editors: + description: The sites that can edit this condition (in a multi site setup). + type: array + items: + type: string + source: + description: "" + type: integer + relation: + description: The relation this condition is using. + type: string + target_text: + description: If using a regular value, the text value this condition is checking + against (for boolean values use 1 and 0). + type: string + target_option: + description: If using a value pointing to an option, the option this condition + is checking against. + type: integer + optionsets: + description: "" + type: array + items: + type: string + pages: + description: "" + type: array + items: + type: string + questionsets: + description: "" + type: array + items: + type: string + questions: + description: "" + type: array + items: + type: string + tasks: + description: "" + type: array + items: + type: string + required: + - uri_prefix + - uri_path + - source + - relation + consumes: + - application/json + tags: + - conditions + patch: + operationId: conditions_conditions_partial_update + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Condition. + type: integer + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: source + required: false + in: query + description: "" + type: string + - name: relation + required: false + in: query + description: "" + type: string + - name: target_text + required: false + in: query + description: "" + type: string + - name: target_option + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this condition (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this condition. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this condition. + type: string + locked: + description: Designates whether this condition can be changed. + type: boolean + editors: + description: The sites that can edit this condition (in a multi site setup). + type: array + items: + type: string + source: + description: "" + type: integer + relation: + description: The relation this condition is using. + type: string + target_text: + description: If using a regular value, the text value this condition is checking + against (for boolean values use 1 and 0). + type: string + target_option: + description: If using a value pointing to an option, the option this condition + is checking against. + type: integer + optionsets: + description: "" + type: array + items: + type: string + pages: + description: "" + type: array + items: + type: string + questionsets: + description: "" + type: array + items: + type: string + questions: + description: "" + type: array + items: + type: string + tasks: + description: "" + type: array + items: + type: string + consumes: + - application/json + tags: + - conditions + delete: + operationId: conditions_conditions_delete + responses: + "204": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Condition. + type: integer + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: source + required: false + in: query + description: "" + type: string + - name: relation + required: false + in: query + description: "" + type: string + - name: target_text + required: false + in: query + description: "" + type: string + - name: target_option + required: false + in: query + description: "" + type: string + tags: + - conditions + /api/v1/conditions/conditions/{id}/export{var}/: + get: + operationId: conditions_detail_export + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Condition. + type: integer + - name: var + required: true + in: path + description: "" + type: string + tags: + - conditions + /api/v1/conditions/relations/: + get: + operationId: conditions_relations_list + responses: + "200": + description: "" + parameters: [] + tags: + - conditions + /api/v1/core/groups/: + get: + operationId: core_groups_list + responses: + "200": + description: "" + parameters: [] + tags: + - core + /api/v1/core/groups/{id}/: + get: + operationId: core_groups_read + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this group. + type: integer + tags: + - core + /api/v1/core/settings/: + get: + operationId: core_settings_list + responses: + "200": + description: "" + parameters: [] + tags: + - core + /api/v1/core/sites/: + get: + operationId: core_sites_list + responses: + "200": + description: "" + parameters: [] + tags: + - core + /api/v1/core/sites/{id}/: + get: + operationId: core_sites_read + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this site. + type: integer + tags: + - core + /api/v1/domain/attributes/: + get: + operationId: domain_attributes_list + responses: + "200": + description: "" + parameters: + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: path + required: false + in: query + description: "" + type: string + - name: key + required: false + in: query + description: "" + type: string + - name: parent + required: false + in: query + description: "" + type: string + tags: + - domain + post: + operationId: domain_attributes_create + responses: + "201": + description: "" + parameters: + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this attribute (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this attribute. + type: string + key: + description: "" + type: string + comment: + description: Additional information about this attribute. + type: string + locked: + description: Designates whether this attribute (and its descendants) can be + changed. + type: boolean + editors: + description: The sites that can edit this attribute (in a multi site setup). + type: array + items: + type: string + parent: + description: "" + type: integer + conditions: + description: "" + type: array + items: + type: string + pages: + description: "" + type: array + items: + type: string + questionsets: + description: "" + type: array + items: + type: string + questions: + description: "" + type: array + items: + type: string + required: + - uri_prefix + - key + consumes: + - application/json + tags: + - domain + /api/v1/domain/attributes/export{var}/: + get: + operationId: domain_export + responses: + "200": + description: "" + parameters: + - name: var + required: true + in: path + description: "" + type: string + tags: + - domain + /api/v1/domain/attributes/index/: + get: + operationId: domain_attributes_index + responses: + "200": + description: "" + parameters: [] + tags: + - domain + /api/v1/domain/attributes/{id}/: + get: + operationId: domain_attributes_read + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Attribute. + type: integer + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: path + required: false + in: query + description: "" + type: string + - name: key + required: false + in: query + description: "" + type: string + - name: parent + required: false + in: query + description: "" + type: string + tags: + - domain + put: + operationId: domain_attributes_update + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Attribute. + type: integer + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: path + required: false + in: query + description: "" + type: string + - name: key + required: false + in: query + description: "" + type: string + - name: parent + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this attribute (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this attribute. + type: string + key: + description: "" + type: string + comment: + description: Additional information about this attribute. + type: string + locked: + description: Designates whether this attribute (and its descendants) can be + changed. + type: boolean + editors: + description: The sites that can edit this attribute (in a multi site setup). + type: array + items: + type: string + parent: + description: "" + type: integer + conditions: + description: "" + type: array + items: + type: string + pages: + description: "" + type: array + items: + type: string + questionsets: + description: "" + type: array + items: + type: string + questions: + description: "" + type: array + items: + type: string + required: + - uri_prefix + - key + consumes: + - application/json + tags: + - domain + patch: + operationId: domain_attributes_partial_update + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Attribute. + type: integer + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: path + required: false + in: query + description: "" + type: string + - name: key + required: false + in: query + description: "" + type: string + - name: parent + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this attribute (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this attribute. + type: string + key: + description: "" + type: string + comment: + description: Additional information about this attribute. + type: string + locked: + description: Designates whether this attribute (and its descendants) can be + changed. + type: boolean + editors: + description: The sites that can edit this attribute (in a multi site setup). + type: array + items: + type: string + parent: + description: "" + type: integer + conditions: + description: "" + type: array + items: + type: string + pages: + description: "" + type: array + items: + type: string + questionsets: + description: "" + type: array + items: + type: string + questions: + description: "" + type: array + items: + type: string + consumes: + - application/json + tags: + - domain + delete: + operationId: domain_attributes_delete + responses: + "204": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Attribute. + type: integer + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: path + required: false + in: query + description: "" + type: string + - name: key + required: false + in: query + description: "" + type: string + - name: parent + required: false + in: query + description: "" + type: string + tags: + - domain + /api/v1/domain/attributes/{id}/export{var}/: + get: + operationId: domain_detail_export + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Attribute. + type: integer + - name: var + required: true + in: path + description: "" + type: string + tags: + - domain + /api/v1/domain/attributes/{id}/nested/: + get: + operationId: domain_attributes_nested + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Attribute. + type: integer + tags: + - domain + /api/v1/management/import/: + post: + operationId: management_import_create + responses: + "201": + description: "" + parameters: [] + tags: + - management + /api/v1/management/meta/: + get: + operationId: management_meta_list + responses: + "200": + description: "" + parameters: [] + tags: + - management + /api/v1/management/upload/: + post: + operationId: management_upload_create + responses: + "201": + description: "" + parameters: [] + tags: + - management + /api/v1/options/additionalinputs/: + get: + operationId: options_additionalinputs_list + responses: + "200": + description: "" + parameters: [] + tags: + - options + /api/v1/options/options/: + get: + operationId: options_options_list + responses: + "200": + description: "" + parameters: + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: optionsets + required: false + in: query + description: "" + type: string + - name: optionsets__uri + required: false + in: query + description: "" + type: string + - name: optionsets__uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + tags: + - options + post: + operationId: options_options_create + responses: + "201": + description: "" + parameters: + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this option (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this option. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this option. + type: string + locked: + description: Designates whether this option can be changed. + type: boolean + additional_input: + description: Designates whether an additional input is possible for this option. + type: string + optionsets: + description: "" + type: array + items: + type: string + editors: + description: The sites that can edit this option (in a multi site setup). + type: array + items: + type: string + text_en: + description: "" + type: string + help_en: + description: "" + type: string + view_text_en: + description: "" + type: string + text_de: + description: "" + type: string + help_de: + description: "" + type: string + view_text_de: + description: "" + type: string + required: + - uri_prefix + - uri_path + consumes: + - application/json + tags: + - options + /api/v1/options/options/export{var}/: + get: + operationId: options_export_0 + responses: + "200": + description: "" + parameters: + - name: var + required: true + in: path + description: "" + type: string + tags: + - options + /api/v1/options/options/index/: + get: + operationId: options_options_index + responses: + "200": + description: "" + parameters: [] + tags: + - options + /api/v1/options/options/{id}/: + get: + operationId: options_options_read + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Option. + type: integer + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: optionsets + required: false + in: query + description: "" + type: string + - name: optionsets__uri + required: false + in: query + description: "" + type: string + - name: optionsets__uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + tags: + - options + put: + operationId: options_options_update + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Option. + type: integer + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: optionsets + required: false + in: query + description: "" + type: string + - name: optionsets__uri + required: false + in: query + description: "" + type: string + - name: optionsets__uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this option (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this option. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this option. + type: string + locked: + description: Designates whether this option can be changed. + type: boolean + additional_input: + description: Designates whether an additional input is possible for this option. + type: string + optionsets: + description: "" + type: array + items: + type: string + editors: + description: The sites that can edit this option (in a multi site setup). + type: array + items: + type: string + text_en: + description: "" + type: string + help_en: + description: "" + type: string + view_text_en: + description: "" + type: string + text_de: + description: "" + type: string + help_de: + description: "" + type: string + view_text_de: + description: "" + type: string + required: + - uri_prefix + - uri_path + consumes: + - application/json + tags: + - options + patch: + operationId: options_options_partial_update + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Option. + type: integer + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: optionsets + required: false + in: query + description: "" + type: string + - name: optionsets__uri + required: false + in: query + description: "" + type: string + - name: optionsets__uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this option (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this option. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this option. + type: string + locked: + description: Designates whether this option can be changed. + type: boolean + additional_input: + description: Designates whether an additional input is possible for this option. + type: string + optionsets: + description: "" + type: array + items: + type: string + editors: + description: The sites that can edit this option (in a multi site setup). + type: array + items: + type: string + text_en: + description: "" + type: string + help_en: + description: "" + type: string + view_text_en: + description: "" + type: string + text_de: + description: "" + type: string + help_de: + description: "" + type: string + view_text_de: + description: "" + type: string + consumes: + - application/json + tags: + - options + delete: + operationId: options_options_delete + responses: + "204": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Option. + type: integer + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: optionsets + required: false + in: query + description: "" + type: string + - name: optionsets__uri + required: false + in: query + description: "" + type: string + - name: optionsets__uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + tags: + - options + /api/v1/options/options/{id}/export{var}/: + get: + operationId: options_detail_export_0 + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Option. + type: integer + - name: var + required: true + in: path + description: "" + type: string + tags: + - options + /api/v1/options/optionsets/: + get: + operationId: options_optionsets_list + responses: + "200": + description: "" + parameters: + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + tags: + - options + post: + operationId: options_optionsets_create + responses: + "201": + description: "" + parameters: + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this option set + (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this option set. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this option set. + type: string + locked: + description: Designates whether this option set (and its options) can be + changed. + type: boolean + order: + description: The position of this option set in lists. + type: integer + provider_key: + description: The provider for this optionset. If set, it will create dynamic + options for this optionset. + type: string + options: + description: "" + type: array + items: + type: string + conditions: + description: The list of conditions evaluated for this option set. + type: array + items: + type: string + questions: + description: "" + type: array + items: + type: string + editors: + description: The sites that can edit this option set (in a multi site setup). + type: array + items: + type: string + required: + - uri_prefix + - uri_path + consumes: + - application/json + tags: + - options + /api/v1/options/optionsets/export{var}/: + get: + operationId: options_export + responses: + "200": + description: "" + parameters: + - name: var + required: true + in: path + description: "" + type: string + tags: + - options + /api/v1/options/optionsets/index/: + get: + operationId: options_optionsets_index + responses: + "200": + description: "" + parameters: [] + tags: + - options + /api/v1/options/optionsets/{id}/: + get: + operationId: options_optionsets_read + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Option set. + type: integer + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + tags: + - options + put: + operationId: options_optionsets_update + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Option set. + type: integer + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this option set + (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this option set. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this option set. + type: string + locked: + description: Designates whether this option set (and its options) can be + changed. + type: boolean + order: + description: The position of this option set in lists. + type: integer + provider_key: + description: The provider for this optionset. If set, it will create dynamic + options for this optionset. + type: string + options: + description: "" + type: array + items: + type: string + conditions: + description: The list of conditions evaluated for this option set. + type: array + items: + type: string + questions: + description: "" + type: array + items: + type: string + editors: + description: The sites that can edit this option set (in a multi site setup). + type: array + items: + type: string + required: + - uri_prefix + - uri_path + consumes: + - application/json + tags: + - options + patch: + operationId: options_optionsets_partial_update + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Option set. + type: integer + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this option set + (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this option set. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this option set. + type: string + locked: + description: Designates whether this option set (and its options) can be + changed. + type: boolean + order: + description: The position of this option set in lists. + type: integer + provider_key: + description: The provider for this optionset. If set, it will create dynamic + options for this optionset. + type: string + options: + description: "" + type: array + items: + type: string + conditions: + description: The list of conditions evaluated for this option set. + type: array + items: + type: string + questions: + description: "" + type: array + items: + type: string + editors: + description: The sites that can edit this option set (in a multi site setup). + type: array + items: + type: string + consumes: + - application/json + tags: + - options + delete: + operationId: options_optionsets_delete + responses: + "204": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Option set. + type: integer + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + tags: + - options + /api/v1/options/optionsets/{id}/export{var}/: + get: + operationId: options_detail_export + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Option set. + type: integer + - name: var + required: true + in: path + description: "" + type: string + tags: + - options + /api/v1/options/optionsets/{id}/nested/: + get: + operationId: options_optionsets_nested + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Option set. + type: integer + tags: + - options + /api/v1/options/providers/: + get: + operationId: options_providers_list + responses: + "200": + description: "" + parameters: [] + tags: + - options + /api/v1/overlays/overlays/{url_name}/current/: + post: + operationId: overlays_overlays_current + responses: + "201": + description: "" + parameters: + - name: url_name + required: true + in: path + description: "" + type: string + tags: + - overlays + /api/v1/overlays/overlays/{url_name}/dismiss/: + post: + operationId: overlays_overlays_dismiss + responses: + "201": + description: "" + parameters: + - name: url_name + required: true + in: path + description: "" + type: string + tags: + - overlays + /api/v1/overlays/overlays/{url_name}/next/: + post: + operationId: overlays_overlays_next + responses: + "201": + description: "" + parameters: + - name: url_name + required: true + in: path + description: "" + type: string + tags: + - overlays + /api/v1/projects/catalogs/: + get: + operationId: projects_catalogs_list + responses: + "200": + description: "" + parameters: [] + tags: + - projects + /api/v1/projects/integrations/: + get: + operationId: projects_integrations_list + responses: + "200": + description: "" + parameters: + - name: project + required: false + in: query + description: "" + type: string + - name: provider_key + required: false + in: query + description: "" + type: string + tags: + - projects + /api/v1/projects/integrations/{id}/: + get: + operationId: projects_integrations_read + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: project + required: false + in: query + description: "" + type: string + - name: provider_key + required: false + in: query + description: "" + type: string + tags: + - projects + /api/v1/projects/invites/: + get: + operationId: projects_invites_list + responses: + "200": + description: "" + parameters: + - name: user + required: false + in: query + description: "" + type: string + - name: user__username + required: false + in: query + description: "" + type: string + - name: email + required: false + in: query + description: "" + type: string + - name: role + required: false + in: query + description: "" + type: string + tags: + - projects + /api/v1/projects/invites/user/: + get: + operationId: projects_invites_user + responses: + "200": + description: "" + parameters: [] + tags: + - projects + /api/v1/projects/invites/{id}/: + get: + operationId: projects_invites_read + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: user + required: false + in: query + description: "" + type: string + - name: user__username + required: false + in: query + description: "" + type: string + - name: email + required: false + in: query + description: "" + type: string + - name: role + required: false + in: query + description: "" + type: string + tags: + - projects + /api/v1/projects/issues/: + get: + operationId: projects_issues_list + responses: + "200": + description: "" + parameters: + - name: task + required: false + in: query + description: "" + type: string + - name: task__uri + required: false + in: query + description: "" + type: string + - name: status + required: false + in: query + description: "" + type: string + tags: + - projects + /api/v1/projects/issues/{id}/: + get: + operationId: projects_issues_read + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: task + required: false + in: query + description: "" + type: string + - name: task__uri + required: false + in: query + description: "" + type: string + - name: status + required: false + in: query + description: "" + type: string + tags: + - projects + /api/v1/projects/memberships/: + get: + operationId: projects_memberships_list + responses: + "200": + description: "" + parameters: + - name: user + required: false + in: query + description: "" + type: string + - name: user__username + required: false + in: query + description: "" + type: string + - name: role + required: false + in: query + description: "" + type: string + tags: + - projects + /api/v1/projects/memberships/{id}/: + get: + operationId: projects_memberships_read + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: user + required: false + in: query + description: "" + type: string + - name: user__username + required: false + in: query + description: "" + type: string + - name: role + required: false + in: query + description: "" + type: string + tags: + - projects + /api/v1/projects/projects/: + get: + operationId: projects_projects_list + responses: + "200": + description: "" + parameters: + - name: title + required: false + in: query + description: "" + type: string + - name: user + required: false + in: query + description: "" + type: string + - name: user__username + required: false + in: query + description: "" + type: string + - name: catalog + required: false + in: query + description: "" + type: string + - name: catalog__uri + required: false + in: query + description: "" + type: string + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + type: string + - name: search + required: false + in: query + description: A search term. + type: string + tags: + - projects + post: + operationId: projects_projects_create + responses: + "201": + description: "" + parameters: + - name: data + in: body + schema: + type: object + properties: + title: + description: The title for this project. + type: string + description: + description: A description for this project (optional). + type: string + catalog: + description: "" + type: string + parent: + description: "" + type: string + site: + description: The site this project belongs to (in a multi site setup). + type: integer + views: + description: The views that will be used for this project. + type: array + items: + type: string + progress_total: + description: The total number of expected values for the progress bar. + type: integer + progress_count: + description: The number of values for the progress bar. + type: integer + required: + - title + - catalog + consumes: + - application/json + tags: + - projects + /api/v1/projects/projects/imports/: + get: + operationId: projects_projects_imports + responses: + "200": + description: "" + parameters: [] + tags: + - projects + /api/v1/projects/projects/upload-accept/: + get: + operationId: projects_projects_upload_accept + responses: + "200": + description: "" + parameters: [] + tags: + - projects + /api/v1/projects/projects/{id}/: + get: + operationId: projects_projects_read + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: title + required: false + in: query + description: "" + type: string + - name: user + required: false + in: query + description: "" + type: string + - name: user__username + required: false + in: query + description: "" + type: string + - name: catalog + required: false + in: query + description: "" + type: string + - name: catalog__uri + required: false + in: query + description: "" + type: string + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + type: string + - name: search + required: false + in: query + description: A search term. + type: string + tags: + - projects + put: + operationId: projects_projects_update + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: title + required: false + in: query + description: "" + type: string + - name: user + required: false + in: query + description: "" + type: string + - name: user__username + required: false + in: query + description: "" + type: string + - name: catalog + required: false + in: query + description: "" + type: string + - name: catalog__uri + required: false + in: query + description: "" + type: string + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + type: string + - name: search + required: false + in: query + description: A search term. + type: string + - name: data + in: body + schema: + type: object + properties: + title: + description: The title for this project. + type: string + description: + description: A description for this project (optional). + type: string + catalog: + description: "" + type: string + parent: + description: "" + type: string + site: + description: The site this project belongs to (in a multi site setup). + type: integer + views: + description: The views that will be used for this project. + type: array + items: + type: string + progress_total: + description: The total number of expected values for the progress bar. + type: integer + progress_count: + description: The number of values for the progress bar. + type: integer + required: + - title + - catalog + consumes: + - application/json + tags: + - projects + patch: + operationId: projects_projects_partial_update + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: title + required: false + in: query + description: "" + type: string + - name: user + required: false + in: query + description: "" + type: string + - name: user__username + required: false + in: query + description: "" + type: string + - name: catalog + required: false + in: query + description: "" + type: string + - name: catalog__uri + required: false + in: query + description: "" + type: string + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + type: string + - name: search + required: false + in: query + description: A search term. + type: string + - name: data + in: body + schema: + type: object + properties: + title: + description: The title for this project. + type: string + description: + description: A description for this project (optional). + type: string + catalog: + description: "" + type: string + parent: + description: "" + type: string + site: + description: The site this project belongs to (in a multi site setup). + type: integer + views: + description: The views that will be used for this project. + type: array + items: + type: string + progress_total: + description: The total number of expected values for the progress bar. + type: integer + progress_count: + description: The number of values for the progress bar. + type: integer + consumes: + - application/json + tags: + - projects + delete: + operationId: projects_projects_delete + responses: + "204": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: title + required: false + in: query + description: "" + type: string + - name: user + required: false + in: query + description: "" + type: string + - name: user__username + required: false + in: query + description: "" + type: string + - name: catalog + required: false + in: query + description: "" + type: string + - name: catalog__uri + required: false + in: query + description: "" + type: string + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + type: string + - name: search + required: false + in: query + description: A search term. + type: string + tags: + - projects + /api/v1/projects/projects/{id}/navigation/{section_id}/: + get: + operationId: projects_projects_navigation + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: section_id + required: true + in: path + description: "" + type: string + tags: + - projects + /api/v1/projects/projects/{id}/options/: + get: + operationId: projects_projects_options + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + tags: + - projects + /api/v1/projects/projects/{id}/overview/: + get: + operationId: projects_projects_overview + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + tags: + - projects + /api/v1/projects/projects/{id}/progress/: + get: + operationId: projects_projects_progress_read + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + tags: + - projects + post: + operationId: projects_projects_progress_create + responses: + "201": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + title: + description: The title for this project. + type: string + description: + description: A description for this project (optional). + type: string + catalog: + description: "" + type: string + parent: + description: "" + type: string + site: + description: The site this project belongs to (in a multi site setup). + type: integer + views: + description: The views that will be used for this project. + type: array + items: + type: string + progress_total: + description: The total number of expected values for the progress bar. + type: integer + progress_count: + description: The number of values for the progress bar. + type: integer + required: + - title + - catalog + consumes: + - application/json + tags: + - projects + /api/v1/projects/projects/{id}/resolve/: + get: + operationId: projects_projects_resolve + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + tags: + - projects + /api/v1/projects/projects/{parent_lookup_project}/integrations/: + get: + operationId: projects_projects_integrations_list + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: provider_key + required: false + in: query + description: "" + type: string + tags: + - projects + post: + operationId: projects_projects_integrations_create + responses: + "201": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + provider_key: + description: The key of the provider for this integration. + type: string + options: + description: "" + type: array + items: + type: string + required: + - provider_key + - options + consumes: + - application/json + tags: + - projects + /api/v1/projects/projects/{parent_lookup_project}/integrations/{id}/: + get: + operationId: projects_projects_integrations_read + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + - name: provider_key + required: false + in: query + description: "" + type: string + tags: + - projects + put: + operationId: projects_projects_integrations_update + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + - name: provider_key + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + provider_key: + description: The key of the provider for this integration. + type: string + options: + description: "" + type: array + items: + type: string + required: + - provider_key + - options + consumes: + - application/json + tags: + - projects + patch: + operationId: projects_projects_integrations_partial_update + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + - name: provider_key + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + provider_key: + description: The key of the provider for this integration. + type: string + options: + description: "" + type: array + items: + type: string + consumes: + - application/json + tags: + - projects + delete: + operationId: projects_projects_integrations_delete + responses: + "204": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + - name: provider_key + required: false + in: query + description: "" + type: string + tags: + - projects + /api/v1/projects/projects/{parent_lookup_project}/invites/: + get: + operationId: projects_projects_invites_list + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: user + required: false + in: query + description: "" + type: string + - name: user__username + required: false + in: query + description: "" + type: string + - name: email + required: false + in: query + description: "" + type: string + - name: role + required: false + in: query + description: "" + type: string + tags: + - projects + post: + operationId: projects_projects_invites_create + responses: + "201": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + user: + description: The user for this membership. + type: integer + email: + description: The e-mail for this membership. + type: string + role: + description: The role for this invite. + type: string + required: + - role + consumes: + - application/json + tags: + - projects + /api/v1/projects/projects/{parent_lookup_project}/invites/{id}/: + get: + operationId: projects_projects_invites_read + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + - name: user + required: false + in: query + description: "" + type: string + - name: user__username + required: false + in: query + description: "" + type: string + - name: email + required: false + in: query + description: "" + type: string + - name: role + required: false + in: query + description: "" + type: string + tags: + - projects + put: + operationId: projects_projects_invites_update + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + - name: user + required: false + in: query + description: "" + type: string + - name: user__username + required: false + in: query + description: "" + type: string + - name: email + required: false + in: query + description: "" + type: string + - name: role + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + role: + description: The role for this invite. + type: string + required: + - role + consumes: + - application/json + tags: + - projects + patch: + operationId: projects_projects_invites_partial_update + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + - name: user + required: false + in: query + description: "" + type: string + - name: user__username + required: false + in: query + description: "" + type: string + - name: email + required: false + in: query + description: "" + type: string + - name: role + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + user: + description: The user for this membership. + type: integer + email: + description: The e-mail for this membership. + type: string + role: + description: The role for this invite. + type: string + consumes: + - application/json + tags: + - projects + delete: + operationId: projects_projects_invites_delete + responses: + "204": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + - name: user + required: false + in: query + description: "" + type: string + - name: user__username + required: false + in: query + description: "" + type: string + - name: email + required: false + in: query + description: "" + type: string + - name: role + required: false + in: query + description: "" + type: string + tags: + - projects + /api/v1/projects/projects/{parent_lookup_project}/issues/: + get: + operationId: projects_projects_issues_list + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: task + required: false + in: query + description: "" + type: string + - name: task__uri + required: false + in: query + description: "" + type: string + - name: status + required: false + in: query + description: "" + type: string + tags: + - projects + /api/v1/projects/projects/{parent_lookup_project}/issues/{id}/: + get: + operationId: projects_projects_issues_read + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + - name: task + required: false + in: query + description: "" + type: string + - name: task__uri + required: false + in: query + description: "" + type: string + - name: status + required: false + in: query + description: "" + type: string + tags: + - projects + put: + operationId: projects_projects_issues_update + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + - name: task + required: false + in: query + description: "" + type: string + - name: task__uri + required: false + in: query + description: "" + type: string + - name: status + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + status: + description: The status for this issue. + type: string + consumes: + - application/json + tags: + - projects + patch: + operationId: projects_projects_issues_partial_update + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + - name: task + required: false + in: query + description: "" + type: string + - name: task__uri + required: false + in: query + description: "" + type: string + - name: status + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + status: + description: The status for this issue. + type: string + consumes: + - application/json + tags: + - projects + /api/v1/projects/projects/{parent_lookup_project}/memberships/: + get: + operationId: projects_projects_memberships_list + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: user + required: false + in: query + description: "" + type: string + - name: user__username + required: false + in: query + description: "" + type: string + - name: role + required: false + in: query + description: "" + type: string + tags: + - projects + post: + operationId: projects_projects_memberships_create + responses: + "201": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + user: + description: The user for this membership. + type: integer + role: + description: The role for this membership. + type: string + required: + - user + - role + consumes: + - application/json + tags: + - projects + /api/v1/projects/projects/{parent_lookup_project}/memberships/{id}/: + get: + operationId: projects_projects_memberships_read + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + - name: user + required: false + in: query + description: "" + type: string + - name: user__username + required: false + in: query + description: "" + type: string + - name: role + required: false + in: query + description: "" + type: string + tags: + - projects + put: + operationId: projects_projects_memberships_update + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + - name: user + required: false + in: query + description: "" + type: string + - name: user__username + required: false + in: query + description: "" + type: string + - name: role + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + role: + description: The role for this membership. + type: string + required: + - role + consumes: + - application/json + tags: + - projects + patch: + operationId: projects_projects_memberships_partial_update + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + - name: user + required: false + in: query + description: "" + type: string + - name: user__username + required: false + in: query + description: "" + type: string + - name: role + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + user: + description: The user for this membership. + type: integer + role: + description: The role for this membership. + type: string + consumes: + - application/json + tags: + - projects + delete: + operationId: projects_projects_memberships_delete + responses: + "204": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + - name: user + required: false + in: query + description: "" + type: string + - name: user__username + required: false + in: query + description: "" + type: string + - name: role + required: false + in: query + description: "" + type: string + tags: + - projects + /api/v1/projects/projects/{parent_lookup_project}/pages/continue/: + get: + operationId: projects_projects_pages_get_continue + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + tags: + - projects + /api/v1/projects/projects/{parent_lookup_project}/pages/{id}/: + get: + operationId: projects_projects_pages_read + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + tags: + - projects + /api/v1/projects/projects/{parent_lookup_project}/snapshots/: + get: + operationId: projects_projects_snapshots_list + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + tags: + - projects + post: + operationId: projects_projects_snapshots_create + responses: + "201": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + title: + description: The title for this snapshot. + type: string + description: + description: A description for this snapshot (optional). + type: string + required: + - title + consumes: + - application/json + tags: + - projects + /api/v1/projects/projects/{parent_lookup_project}/snapshots/{id}/: + get: + operationId: projects_projects_snapshots_read + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + tags: + - projects + put: + operationId: projects_projects_snapshots_update + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + title: + description: The title for this snapshot. + type: string + description: + description: A description for this snapshot (optional). + type: string + required: + - title + consumes: + - application/json + tags: + - projects + patch: + operationId: projects_projects_snapshots_partial_update + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + title: + description: The title for this snapshot. + type: string + description: + description: A description for this snapshot (optional). + type: string + consumes: + - application/json + tags: + - projects + /api/v1/projects/projects/{parent_lookup_project}/values/: + get: + operationId: projects_projects_values_list + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: attribute__uri + required: false + in: query + description: "" + type: string + - name: option + required: false + in: query + description: "" + type: string + - name: option__uri + required: false + in: query + description: "" + type: string + tags: + - projects + post: + operationId: projects_projects_values_create + responses: + "201": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + attribute: + description: The attribute this value belongs to. + type: integer + set_prefix: + description: The position of this value with respect to superior sets (i.e. for + nested question sets). + type: string + set_index: + description: The position of this value in a set (i.e. for a question set tagged + as collection). + type: integer + set_collection: + description: Indicates if this value was entered as part of a set (important for + conditions). + type: boolean + collection_index: + description: The position of this value in a list (i.e. for a question tagged as + collection). + type: integer + text: + description: The string stored for this value. + type: string + option: + description: The option stored for this value. + type: integer + value_type: + description: Type of this value. + type: string + unit: + description: Unit for this value. + type: string + external_id: + description: External id for this value. + type: string + consumes: + - application/json + tags: + - projects + /api/v1/projects/projects/{parent_lookup_project}/values/{id}/: + get: + operationId: projects_projects_values_read + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + - name: attribute__uri + required: false + in: query + description: "" + type: string + - name: option + required: false + in: query + description: "" + type: string + - name: option__uri + required: false + in: query + description: "" + type: string + tags: + - projects + put: + operationId: projects_projects_values_update + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + - name: attribute__uri + required: false + in: query + description: "" + type: string + - name: option + required: false + in: query + description: "" + type: string + - name: option__uri + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + attribute: + description: The attribute this value belongs to. + type: integer + set_prefix: + description: The position of this value with respect to superior sets (i.e. for + nested question sets). + type: string + set_index: + description: The position of this value in a set (i.e. for a question set tagged + as collection). + type: integer + set_collection: + description: Indicates if this value was entered as part of a set (important for + conditions). + type: boolean + collection_index: + description: The position of this value in a list (i.e. for a question tagged as + collection). + type: integer + text: + description: The string stored for this value. + type: string + option: + description: The option stored for this value. + type: integer + value_type: + description: Type of this value. + type: string + unit: + description: Unit for this value. + type: string + external_id: + description: External id for this value. + type: string + consumes: + - application/json + tags: + - projects + patch: + operationId: projects_projects_values_partial_update + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + - name: attribute__uri + required: false + in: query + description: "" + type: string + - name: option + required: false + in: query + description: "" + type: string + - name: option__uri + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + attribute: + description: The attribute this value belongs to. + type: integer + set_prefix: + description: The position of this value with respect to superior sets (i.e. for + nested question sets). + type: string + set_index: + description: The position of this value in a set (i.e. for a question set tagged + as collection). + type: integer + set_collection: + description: Indicates if this value was entered as part of a set (important for + conditions). + type: boolean + collection_index: + description: The position of this value in a list (i.e. for a question tagged as + collection). + type: integer + text: + description: The string stored for this value. + type: string + option: + description: The option stored for this value. + type: integer + value_type: + description: Type of this value. + type: string + unit: + description: Unit for this value. + type: string + external_id: + description: External id for this value. + type: string + consumes: + - application/json + tags: + - projects + delete: + operationId: projects_projects_values_delete + responses: + "204": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + - name: attribute__uri + required: false + in: query + description: "" + type: string + - name: option + required: false + in: query + description: "" + type: string + - name: option__uri + required: false + in: query + description: "" + type: string + tags: + - projects + /api/v1/projects/projects/{parent_lookup_project}/values/{id}/file/: + get: + operationId: projects_projects_values_file_read + responses: + "200": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + tags: + - projects + post: + operationId: projects_projects_values_file_create + responses: + "201": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + attribute: + description: The attribute this value belongs to. + type: integer + set_prefix: + description: The position of this value with respect to superior sets (i.e. for + nested question sets). + type: string + set_index: + description: The position of this value in a set (i.e. for a question set tagged + as collection). + type: integer + set_collection: + description: Indicates if this value was entered as part of a set (important for + conditions). + type: boolean + collection_index: + description: The position of this value in a list (i.e. for a question tagged as + collection). + type: integer + text: + description: The string stored for this value. + type: string + option: + description: The option stored for this value. + type: integer + value_type: + description: Type of this value. + type: string + unit: + description: Unit for this value. + type: string + external_id: + description: External id for this value. + type: string + consumes: + - application/json + tags: + - projects + /api/v1/projects/projects/{parent_lookup_project}/values/{id}/set/: + delete: + operationId: projects_projects_values_set + responses: + "204": + description: "" + parameters: + - name: parent_lookup_project + required: true + in: path + description: "" + type: string + - name: id + required: true + in: path + description: "" + type: string + tags: + - projects + /api/v1/projects/snapshots/: + get: + operationId: projects_snapshots_list + responses: + "200": + description: "" + parameters: + - name: title + required: false + in: query + description: "" + type: string + - name: project + required: false + in: query + description: "" + type: string + tags: + - projects + /api/v1/projects/snapshots/{id}/: + get: + operationId: projects_snapshots_read + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: title + required: false + in: query + description: "" + type: string + - name: project + required: false + in: query + description: "" + type: string + tags: + - projects + /api/v1/projects/values/: + get: + operationId: projects_values_list + responses: + "200": + description: "" + parameters: + - name: project + required: false + in: query + description: "" + type: string + - name: attribute + required: false + in: query + description: "" + type: string + - name: attribute__uri + required: false + in: query + description: "" + type: string + - name: option + required: false + in: query + description: "" + type: string + - name: option__uri + required: false + in: query + description: "" + type: string + tags: + - projects + /api/v1/projects/values/{id}/: + get: + operationId: projects_values_read + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: project + required: false + in: query + description: "" + type: string + - name: attribute + required: false + in: query + description: "" + type: string + - name: attribute__uri + required: false + in: query + description: "" + type: string + - name: option + required: false + in: query + description: "" + type: string + - name: option__uri + required: false + in: query + description: "" + type: string + tags: + - projects + /api/v1/projects/values/{id}/file/: + get: + operationId: projects_values_file + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + tags: + - projects + /api/v1/questions/catalogs/: + get: + operationId: questions_catalogs_list + responses: + "200": + description: "" + parameters: + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: sites + required: false + in: query + description: "" + type: string + tags: + - questions + post: + operationId: questions_catalogs_create + responses: + "201": + description: "" + parameters: + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this catalog (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this catalog. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this catalog. + type: string + locked: + description: Designates whether this catalog (and its sections, question sets + and questions) can be changed. + type: boolean + order: + description: The position of this catalog in lists. + type: integer + available: + description: Designates whether this catalog is generally available for + projects. + type: boolean + sections: + description: "" + type: array + items: + type: string + sites: + description: The sites this catalog belongs to (in a multi site setup). + type: array + items: + type: string + editors: + description: The sites that can edit this catalog (in a multi site setup). + type: array + items: + type: string + groups: + description: The groups for which this catalog is active. + type: array + items: + type: string + title_en: + description: "" + type: string + help_en: + description: "" + type: string + title_de: + description: "" + type: string + help_de: + description: "" + type: string + required: + - uri_prefix + - uri_path + consumes: + - application/json + tags: + - questions + /api/v1/questions/catalogs/export{var}/: + get: + operationId: questions_export + responses: + "200": + description: "" + parameters: + - name: var + required: true + in: path + description: "" + type: string + tags: + - questions + /api/v1/questions/catalogs/index/: + get: + operationId: questions_catalogs_index + responses: + "200": + description: "" + parameters: [] + tags: + - questions + /api/v1/questions/catalogs/{id}/: + get: + operationId: questions_catalogs_read + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: sites + required: false + in: query + description: "" + type: string + tags: + - questions + put: + operationId: questions_catalogs_update + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: sites + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this catalog (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this catalog. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this catalog. + type: string + locked: + description: Designates whether this catalog (and its sections, question sets + and questions) can be changed. + type: boolean + order: + description: The position of this catalog in lists. + type: integer + available: + description: Designates whether this catalog is generally available for + projects. + type: boolean + sections: + description: "" + type: array + items: + type: string + sites: + description: The sites this catalog belongs to (in a multi site setup). + type: array + items: + type: string + editors: + description: The sites that can edit this catalog (in a multi site setup). + type: array + items: + type: string + groups: + description: The groups for which this catalog is active. + type: array + items: + type: string + title_en: + description: "" + type: string + help_en: + description: "" + type: string + title_de: + description: "" + type: string + help_de: + description: "" + type: string + required: + - uri_prefix + - uri_path + consumes: + - application/json + tags: + - questions + patch: + operationId: questions_catalogs_partial_update + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: sites + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this catalog (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this catalog. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this catalog. + type: string + locked: + description: Designates whether this catalog (and its sections, question sets + and questions) can be changed. + type: boolean + order: + description: The position of this catalog in lists. + type: integer + available: + description: Designates whether this catalog is generally available for + projects. + type: boolean + sections: + description: "" + type: array + items: + type: string + sites: + description: The sites this catalog belongs to (in a multi site setup). + type: array + items: + type: string + editors: + description: The sites that can edit this catalog (in a multi site setup). + type: array + items: + type: string + groups: + description: The groups for which this catalog is active. + type: array + items: + type: string + title_en: + description: "" + type: string + help_en: + description: "" + type: string + title_de: + description: "" + type: string + help_de: + description: "" + type: string + consumes: + - application/json + tags: + - questions + delete: + operationId: questions_catalogs_delete + responses: + "204": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: sites + required: false + in: query + description: "" + type: string + tags: + - questions + /api/v1/questions/catalogs/{id}/export{var}/: + get: + operationId: questions_detail_export + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: var + required: true + in: path + description: "" + type: string + tags: + - questions + /api/v1/questions/catalogs/{id}/nested/: + get: + operationId: questions_catalogs_nested + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + tags: + - questions + /api/v1/questions/catalogs/{id}/toggle-site/: + put: + operationId: questions_catalogs_toggle_site + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this catalog (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this catalog. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this catalog. + type: string + locked: + description: Designates whether this catalog (and its sections, question sets + and questions) can be changed. + type: boolean + order: + description: The position of this catalog in lists. + type: integer + available: + description: Designates whether this catalog is generally available for + projects. + type: boolean + sections: + description: "" + type: array + items: + type: string + sites: + description: The sites this catalog belongs to (in a multi site setup). + type: array + items: + type: string + editors: + description: The sites that can edit this catalog (in a multi site setup). + type: array + items: + type: string + groups: + description: The groups for which this catalog is active. + type: array + items: + type: string + title_en: + description: "" + type: string + help_en: + description: "" + type: string + title_de: + description: "" + type: string + help_de: + description: "" + type: string + required: + - uri_prefix + - uri_path + consumes: + - application/json + tags: + - questions + /api/v1/questions/pages/: + get: + operationId: questions_pages_list + responses: + "200": + description: "" + parameters: + - name: attribute + required: false + in: query + description: "" + type: string + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: is_collection + required: false + in: query + description: "" + type: string + tags: + - questions + post: + operationId: questions_pages_create + responses: + "201": + description: "" + parameters: + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this page (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this page. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this page. + type: string + locked: + description: Designates whether this page (and its questionsets and questions) + can be changed. + type: boolean + attribute: + description: The attribute this page belongs to. + type: integer + is_collection: + description: Designates whether this page is a collection. + type: boolean + sections: + description: "" + type: array + items: + type: string + questionsets: + description: "" + type: array + items: + type: string + questions: + description: "" + type: array + items: + type: string + conditions: + description: List of conditions evaluated for this page. + type: array + items: + type: string + editors: + description: The sites that can edit this page (in a multi site setup). + type: array + items: + type: string + title_en: + description: "" + type: string + short_title_en: + description: "" + type: string + help_en: + description: "" + type: string + verbose_name_en: + description: "" + type: string + title_de: + description: "" + type: string + short_title_de: + description: "" + type: string + help_de: + description: "" + type: string + verbose_name_de: + description: "" + type: string + required: + - uri_prefix + - uri_path + consumes: + - application/json + tags: + - questions + /api/v1/questions/pages/export{var}/: + get: + operationId: questions_export_1 + responses: + "200": + description: "" + parameters: + - name: var + required: true + in: path + description: "" + type: string + tags: + - questions + /api/v1/questions/pages/index/: + get: + operationId: questions_pages_index + responses: + "200": + description: "" + parameters: [] + tags: + - questions + /api/v1/questions/pages/{id}/: + get: + operationId: questions_pages_read + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: attribute + required: false + in: query + description: "" + type: string + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: is_collection + required: false + in: query + description: "" + type: string + tags: + - questions + put: + operationId: questions_pages_update + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: attribute + required: false + in: query + description: "" + type: string + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: is_collection + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this page (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this page. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this page. + type: string + locked: + description: Designates whether this page (and its questionsets and questions) + can be changed. + type: boolean + attribute: + description: The attribute this page belongs to. + type: integer + is_collection: + description: Designates whether this page is a collection. + type: boolean + sections: + description: "" + type: array + items: + type: string + questionsets: + description: "" + type: array + items: + type: string + questions: + description: "" + type: array + items: + type: string + conditions: + description: List of conditions evaluated for this page. + type: array + items: + type: string + editors: + description: The sites that can edit this page (in a multi site setup). + type: array + items: + type: string + title_en: + description: "" + type: string + short_title_en: + description: "" + type: string + help_en: + description: "" + type: string + verbose_name_en: + description: "" + type: string + title_de: + description: "" + type: string + short_title_de: + description: "" + type: string + help_de: + description: "" + type: string + verbose_name_de: + description: "" + type: string + required: + - uri_prefix + - uri_path + consumes: + - application/json + tags: + - questions + patch: + operationId: questions_pages_partial_update + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: attribute + required: false + in: query + description: "" + type: string + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: is_collection + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this page (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this page. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this page. + type: string + locked: + description: Designates whether this page (and its questionsets and questions) + can be changed. + type: boolean + attribute: + description: The attribute this page belongs to. + type: integer + is_collection: + description: Designates whether this page is a collection. + type: boolean + sections: + description: "" + type: array + items: + type: string + questionsets: + description: "" + type: array + items: + type: string + questions: + description: "" + type: array + items: + type: string + conditions: + description: List of conditions evaluated for this page. + type: array + items: + type: string + editors: + description: The sites that can edit this page (in a multi site setup). + type: array + items: + type: string + title_en: + description: "" + type: string + short_title_en: + description: "" + type: string + help_en: + description: "" + type: string + verbose_name_en: + description: "" + type: string + title_de: + description: "" + type: string + short_title_de: + description: "" + type: string + help_de: + description: "" + type: string + verbose_name_de: + description: "" + type: string + consumes: + - application/json + tags: + - questions + delete: + operationId: questions_pages_delete + responses: + "204": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: attribute + required: false + in: query + description: "" + type: string + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: is_collection + required: false + in: query + description: "" + type: string + tags: + - questions + /api/v1/questions/pages/{id}/export{var}/: + get: + operationId: questions_detail_export_1 + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: var + required: true + in: path + description: "" + type: string + tags: + - questions + /api/v1/questions/pages/{id}/nested/: + get: + operationId: questions_pages_nested + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + tags: + - questions + /api/v1/questions/questions/: + get: + operationId: questions_questions_list + responses: + "200": + description: "" + parameters: + - name: attribute + required: false + in: query + description: "" + type: string + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: is_collection + required: false + in: query + description: "" + type: string + - name: value_type + required: false + in: query + description: "" + type: string + - name: widget_type + required: false + in: query + description: "" + type: string + - name: unit + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + tags: + - questions + post: + operationId: questions_questions_create + responses: + "201": + description: "" + parameters: + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this question (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this question. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this question. + type: string + locked: + description: Designates whether this question can be changed. + type: boolean + attribute: + description: The attribute this question belongs to. + type: integer + is_collection: + description: Designates whether this question is a collection. + type: boolean + is_optional: + description: Designates whether this question is optional. + type: boolean + maximum: + description: Maximum value for this question. + type: number + minimum: + description: Minimal value for this question. + type: number + step: + description: Step in which the value for this question can be + incremented/decremented. + type: number + default_option: + description: The default option for this question. To be used with regular + optionsets. + type: integer + default_external_id: + description: The default external id for this question. To be used with dynamic + optionsets. + type: string + widget_type: + description: Type of widget for this question. + type: string + value_type: + description: Type of value for this question. + type: string + unit: + description: Unit for this question. + type: string + width: + description: "Width for the widget of this question (optional, full width: 12)." + type: integer + pages: + description: "" + type: array + items: + type: string + questionsets: + description: "" + type: array + items: + type: string + optionsets: + description: Option sets for this question. + type: array + items: + type: string + conditions: + description: List of conditions evaluated for this question. + type: array + items: + type: string + editors: + description: The sites that can edit this question (in a multi site setup). + type: array + items: + type: string + text_en: + description: "" + type: string + help_en: + description: "" + type: string + default_text_en: + description: "" + type: string + verbose_name_en: + description: "" + type: string + text_de: + description: "" + type: string + help_de: + description: "" + type: string + default_text_de: + description: "" + type: string + verbose_name_de: + description: "" + type: string + required: + - uri_prefix + - uri_path + - widget_type + - value_type + consumes: + - application/json + tags: + - questions + /api/v1/questions/questions/export{var}/: + get: + operationId: questions_export_3 + responses: + "200": + description: "" + parameters: + - name: var + required: true + in: path + description: "" + type: string + tags: + - questions + /api/v1/questions/questions/index/: + get: + operationId: questions_questions_index + responses: + "200": + description: "" + parameters: [] + tags: + - questions + /api/v1/questions/questions/{id}/: + get: + operationId: questions_questions_read + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: attribute + required: false + in: query + description: "" + type: string + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: is_collection + required: false + in: query + description: "" + type: string + - name: value_type + required: false + in: query + description: "" + type: string + - name: widget_type + required: false + in: query + description: "" + type: string + - name: unit + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + tags: + - questions + put: + operationId: questions_questions_update + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: attribute + required: false + in: query + description: "" + type: string + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: is_collection + required: false + in: query + description: "" + type: string + - name: value_type + required: false + in: query + description: "" + type: string + - name: widget_type + required: false + in: query + description: "" + type: string + - name: unit + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this question (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this question. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this question. + type: string + locked: + description: Designates whether this question can be changed. + type: boolean + attribute: + description: The attribute this question belongs to. + type: integer + is_collection: + description: Designates whether this question is a collection. + type: boolean + is_optional: + description: Designates whether this question is optional. + type: boolean + maximum: + description: Maximum value for this question. + type: number + minimum: + description: Minimal value for this question. + type: number + step: + description: Step in which the value for this question can be + incremented/decremented. + type: number + default_option: + description: The default option for this question. To be used with regular + optionsets. + type: integer + default_external_id: + description: The default external id for this question. To be used with dynamic + optionsets. + type: string + widget_type: + description: Type of widget for this question. + type: string + value_type: + description: Type of value for this question. + type: string + unit: + description: Unit for this question. + type: string + width: + description: "Width for the widget of this question (optional, full width: 12)." + type: integer + pages: + description: "" + type: array + items: + type: string + questionsets: + description: "" + type: array + items: + type: string + optionsets: + description: Option sets for this question. + type: array + items: + type: string + conditions: + description: List of conditions evaluated for this question. + type: array + items: + type: string + editors: + description: The sites that can edit this question (in a multi site setup). + type: array + items: + type: string + text_en: + description: "" + type: string + help_en: + description: "" + type: string + default_text_en: + description: "" + type: string + verbose_name_en: + description: "" + type: string + text_de: + description: "" + type: string + help_de: + description: "" + type: string + default_text_de: + description: "" + type: string + verbose_name_de: + description: "" + type: string + required: + - uri_prefix + - uri_path + - widget_type + - value_type + consumes: + - application/json + tags: + - questions + patch: + operationId: questions_questions_partial_update + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: attribute + required: false + in: query + description: "" + type: string + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: is_collection + required: false + in: query + description: "" + type: string + - name: value_type + required: false + in: query + description: "" + type: string + - name: widget_type + required: false + in: query + description: "" + type: string + - name: unit + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this question (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this question. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this question. + type: string + locked: + description: Designates whether this question can be changed. + type: boolean + attribute: + description: The attribute this question belongs to. + type: integer + is_collection: + description: Designates whether this question is a collection. + type: boolean + is_optional: + description: Designates whether this question is optional. + type: boolean + maximum: + description: Maximum value for this question. + type: number + minimum: + description: Minimal value for this question. + type: number + step: + description: Step in which the value for this question can be + incremented/decremented. + type: number + default_option: + description: The default option for this question. To be used with regular + optionsets. + type: integer + default_external_id: + description: The default external id for this question. To be used with dynamic + optionsets. + type: string + widget_type: + description: Type of widget for this question. + type: string + value_type: + description: Type of value for this question. + type: string + unit: + description: Unit for this question. + type: string + width: + description: "Width for the widget of this question (optional, full width: 12)." + type: integer + pages: + description: "" + type: array + items: + type: string + questionsets: + description: "" + type: array + items: + type: string + optionsets: + description: Option sets for this question. + type: array + items: + type: string + conditions: + description: List of conditions evaluated for this question. + type: array + items: + type: string + editors: + description: The sites that can edit this question (in a multi site setup). + type: array + items: + type: string + text_en: + description: "" + type: string + help_en: + description: "" + type: string + default_text_en: + description: "" + type: string + verbose_name_en: + description: "" + type: string + text_de: + description: "" + type: string + help_de: + description: "" + type: string + default_text_de: + description: "" + type: string + verbose_name_de: + description: "" + type: string + consumes: + - application/json + tags: + - questions + delete: + operationId: questions_questions_delete + responses: + "204": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: attribute + required: false + in: query + description: "" + type: string + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: is_collection + required: false + in: query + description: "" + type: string + - name: value_type + required: false + in: query + description: "" + type: string + - name: widget_type + required: false + in: query + description: "" + type: string + - name: unit + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + tags: + - questions + /api/v1/questions/questions/{id}/export{var}/: + get: + operationId: questions_detail_export_3 + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: var + required: true + in: path + description: "" + type: string + tags: + - questions + /api/v1/questions/questionsets/: + get: + operationId: questions_questionsets_list + responses: + "200": + description: "" + parameters: + - name: attribute + required: false + in: query + description: "" + type: string + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: is_collection + required: false + in: query + description: "" + type: string + tags: + - questions + post: + operationId: questions_questionsets_create + responses: + "201": + description: "" + parameters: + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this question set + (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this question set. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this question set. + type: string + locked: + description: Designates whether this question set (and its questions) can be + changed. + type: boolean + attribute: + description: The attribute this question set belongs to. + type: integer + is_collection: + description: Designates whether this question set is a collection. + type: boolean + pages: + description: "" + type: array + items: + type: string + parents: + description: "" + type: array + items: + type: string + questionsets: + description: "" + type: array + items: + type: string + questions: + description: "" + type: array + items: + type: string + conditions: + description: List of conditions evaluated for this question set. + type: array + items: + type: string + editors: + description: The sites that can edit this questionset (in a multi site setup). + type: array + items: + type: string + title_en: + description: "" + type: string + help_en: + description: "" + type: string + verbose_name_en: + description: "" + type: string + title_de: + description: "" + type: string + help_de: + description: "" + type: string + verbose_name_de: + description: "" + type: string + required: + - uri_prefix + - uri_path + consumes: + - application/json + tags: + - questions + /api/v1/questions/questionsets/export{var}/: + get: + operationId: questions_export_2 + responses: + "200": + description: "" + parameters: + - name: var + required: true + in: path + description: "" + type: string + tags: + - questions + /api/v1/questions/questionsets/index/: + get: + operationId: questions_questionsets_index + responses: + "200": + description: "" + parameters: [] + tags: + - questions + /api/v1/questions/questionsets/{id}/: + get: + operationId: questions_questionsets_read + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: attribute + required: false + in: query + description: "" + type: string + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: is_collection + required: false + in: query + description: "" + type: string + tags: + - questions + put: + operationId: questions_questionsets_update + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: attribute + required: false + in: query + description: "" + type: string + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: is_collection + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this question set + (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this question set. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this question set. + type: string + locked: + description: Designates whether this question set (and its questions) can be + changed. + type: boolean + attribute: + description: The attribute this question set belongs to. + type: integer + is_collection: + description: Designates whether this question set is a collection. + type: boolean + pages: + description: "" + type: array + items: + type: string + parents: + description: "" + type: array + items: + type: string + questionsets: + description: "" + type: array + items: + type: string + questions: + description: "" + type: array + items: + type: string + conditions: + description: List of conditions evaluated for this question set. + type: array + items: + type: string + editors: + description: The sites that can edit this questionset (in a multi site setup). + type: array + items: + type: string + title_en: + description: "" + type: string + help_en: + description: "" + type: string + verbose_name_en: + description: "" + type: string + title_de: + description: "" + type: string + help_de: + description: "" + type: string + verbose_name_de: + description: "" + type: string + required: + - uri_prefix + - uri_path + consumes: + - application/json + tags: + - questions + patch: + operationId: questions_questionsets_partial_update + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: attribute + required: false + in: query + description: "" + type: string + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: is_collection + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this question set + (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this question set. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this question set. + type: string + locked: + description: Designates whether this question set (and its questions) can be + changed. + type: boolean + attribute: + description: The attribute this question set belongs to. + type: integer + is_collection: + description: Designates whether this question set is a collection. + type: boolean + pages: + description: "" + type: array + items: + type: string + parents: + description: "" + type: array + items: + type: string + questionsets: + description: "" + type: array + items: + type: string + questions: + description: "" + type: array + items: + type: string + conditions: + description: List of conditions evaluated for this question set. + type: array + items: + type: string + editors: + description: The sites that can edit this questionset (in a multi site setup). + type: array + items: + type: string + title_en: + description: "" + type: string + help_en: + description: "" + type: string + verbose_name_en: + description: "" + type: string + title_de: + description: "" + type: string + help_de: + description: "" + type: string + verbose_name_de: + description: "" + type: string + consumes: + - application/json + tags: + - questions + delete: + operationId: questions_questionsets_delete + responses: + "204": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: attribute + required: false + in: query + description: "" + type: string + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: is_collection + required: false + in: query + description: "" + type: string + tags: + - questions + /api/v1/questions/questionsets/{id}/export{var}/: + get: + operationId: questions_detail_export_2 + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: var + required: true + in: path + description: "" + type: string + tags: + - questions + /api/v1/questions/questionsets/{id}/nested/: + get: + operationId: questions_questionsets_nested + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + tags: + - questions + /api/v1/questions/sections/: + get: + operationId: questions_sections_list + responses: + "200": + description: "" + parameters: + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + tags: + - questions + post: + operationId: questions_sections_create + responses: + "201": + description: "" + parameters: + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this section (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this section. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this section. + type: string + locked: + description: Designates whether this section (and its question sets and + questions) can be changed. + type: boolean + catalogs: + description: "" + type: array + items: + type: string + pages: + description: "" + type: array + items: + type: string + editors: + description: The sites that can edit this section (in a multi site setup). + type: array + items: + type: string + title_en: + description: "" + type: string + short_title_en: + description: "" + type: string + title_de: + description: "" + type: string + short_title_de: + description: "" + type: string + required: + - uri_prefix + - uri_path + consumes: + - application/json + tags: + - questions + /api/v1/questions/sections/export{var}/: + get: + operationId: questions_export_0 + responses: + "200": + description: "" + parameters: + - name: var + required: true + in: path + description: "" + type: string + tags: + - questions + /api/v1/questions/sections/index/: + get: + operationId: questions_sections_index + responses: + "200": + description: "" + parameters: [] + tags: + - questions + /api/v1/questions/sections/{id}/: + get: + operationId: questions_sections_read + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + tags: + - questions + put: + operationId: questions_sections_update + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this section (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this section. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this section. + type: string + locked: + description: Designates whether this section (and its question sets and + questions) can be changed. + type: boolean + catalogs: + description: "" + type: array + items: + type: string + pages: + description: "" + type: array + items: + type: string + editors: + description: The sites that can edit this section (in a multi site setup). + type: array + items: + type: string + title_en: + description: "" + type: string + short_title_en: + description: "" + type: string + title_de: + description: "" + type: string + short_title_de: + description: "" + type: string + required: + - uri_prefix + - uri_path + consumes: + - application/json + tags: + - questions + patch: + operationId: questions_sections_partial_update + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this section (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this section. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this section. + type: string + locked: + description: Designates whether this section (and its question sets and + questions) can be changed. + type: boolean + catalogs: + description: "" + type: array + items: + type: string + pages: + description: "" + type: array + items: + type: string + editors: + description: The sites that can edit this section (in a multi site setup). + type: array + items: + type: string + title_en: + description: "" + type: string + short_title_en: + description: "" + type: string + title_de: + description: "" + type: string + short_title_de: + description: "" + type: string + consumes: + - application/json + tags: + - questions + delete: + operationId: questions_sections_delete + responses: + "204": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + tags: + - questions + /api/v1/questions/sections/{id}/export{var}/: + get: + operationId: questions_detail_export_0 + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + - name: var + required: true + in: path + description: "" + type: string + tags: + - questions + /api/v1/questions/sections/{id}/nested/: + get: + operationId: questions_sections_nested + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: "" + type: string + tags: + - questions + /api/v1/questions/valuetypes/: + get: + operationId: questions_valuetypes_list + responses: + "200": + description: "" + parameters: [] + tags: + - questions + /api/v1/questions/widgettypes/: + get: + operationId: questions_widgettypes_list + responses: + "200": + description: "" + parameters: [] + tags: + - questions + /api/v1/tasks/tasks/: + get: + operationId: tasks_tasks_list + responses: + "200": + description: "" + parameters: + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: sites + required: false + in: query + description: "" + type: string + - name: editors + required: false + in: query + description: "" + type: string + tags: + - tasks + post: + operationId: tasks_tasks_create + responses: + "201": + description: "" + parameters: + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this task (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this task. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this task. + type: string + locked: + description: Designates whether this task can be changed. + type: boolean + order: + description: The position of this task in lists. + type: integer + available: + description: Designates whether this task is generally available for projects. + type: boolean + catalogs: + description: The catalogs this task can be used with. An empty list implies that + this task can be used with every catalog. + type: array + items: + type: string + sites: + description: The sites this task belongs to (in a multi site setup). + type: array + items: + type: string + editors: + description: The sites that can edit this task (in a multi site setup). + type: array + items: + type: string + groups: + description: The groups for which this task is active. + type: array + items: + type: string + start_attribute: + description: The attribute that is setting the start date for this task. + type: integer + end_attribute: + description: The attribute that is setting the end date for this task (optional, + if no end date attribute is given, the start date attribute + sets also the end date). + type: integer + days_before: + description: Additional days before the start date. + type: integer + days_after: + description: Additional days after the end date. + type: integer + conditions: + description: The list of conditions evaluated for this task. + type: array + items: + type: string + title_en: + description: "" + type: string + text_en: + description: "" + type: string + title_de: + description: "" + type: string + text_de: + description: "" + type: string + required: + - uri_prefix + - uri_path + consumes: + - application/json + tags: + - tasks + /api/v1/tasks/tasks/export{var}/: + get: + operationId: tasks_export + responses: + "200": + description: "" + parameters: + - name: var + required: true + in: path + description: "" + type: string + tags: + - tasks + /api/v1/tasks/tasks/index/: + get: + operationId: tasks_tasks_index + responses: + "200": + description: "" + parameters: [] + tags: + - tasks + /api/v1/tasks/tasks/{id}/: + get: + operationId: tasks_tasks_read + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Task. + type: integer + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: sites + required: false + in: query + description: "" + type: string + - name: editors + required: false + in: query + description: "" + type: string + tags: + - tasks + put: + operationId: tasks_tasks_update + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Task. + type: integer + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: sites + required: false + in: query + description: "" + type: string + - name: editors + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this task (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this task. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this task. + type: string + locked: + description: Designates whether this task can be changed. + type: boolean + order: + description: The position of this task in lists. + type: integer + available: + description: Designates whether this task is generally available for projects. + type: boolean + catalogs: + description: The catalogs this task can be used with. An empty list implies that + this task can be used with every catalog. + type: array + items: + type: string + sites: + description: The sites this task belongs to (in a multi site setup). + type: array + items: + type: string + editors: + description: The sites that can edit this task (in a multi site setup). + type: array + items: + type: string + groups: + description: The groups for which this task is active. + type: array + items: + type: string + start_attribute: + description: The attribute that is setting the start date for this task. + type: integer + end_attribute: + description: The attribute that is setting the end date for this task (optional, + if no end date attribute is given, the start date attribute + sets also the end date). + type: integer + days_before: + description: Additional days before the start date. + type: integer + days_after: + description: Additional days after the end date. + type: integer + conditions: + description: The list of conditions evaluated for this task. + type: array + items: + type: string + title_en: + description: "" + type: string + text_en: + description: "" + type: string + title_de: + description: "" + type: string + text_de: + description: "" + type: string + required: + - uri_prefix + - uri_path + consumes: + - application/json + tags: + - tasks + patch: + operationId: tasks_tasks_partial_update + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Task. + type: integer + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: sites + required: false + in: query + description: "" + type: string + - name: editors + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this task (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this task. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this task. + type: string + locked: + description: Designates whether this task can be changed. + type: boolean + order: + description: The position of this task in lists. + type: integer + available: + description: Designates whether this task is generally available for projects. + type: boolean + catalogs: + description: The catalogs this task can be used with. An empty list implies that + this task can be used with every catalog. + type: array + items: + type: string + sites: + description: The sites this task belongs to (in a multi site setup). + type: array + items: + type: string + editors: + description: The sites that can edit this task (in a multi site setup). + type: array + items: + type: string + groups: + description: The groups for which this task is active. + type: array + items: + type: string + start_attribute: + description: The attribute that is setting the start date for this task. + type: integer + end_attribute: + description: The attribute that is setting the end date for this task (optional, + if no end date attribute is given, the start date attribute + sets also the end date). + type: integer + days_before: + description: Additional days before the start date. + type: integer + days_after: + description: Additional days after the end date. + type: integer + conditions: + description: The list of conditions evaluated for this task. + type: array + items: + type: string + title_en: + description: "" + type: string + text_en: + description: "" + type: string + title_de: + description: "" + type: string + text_de: + description: "" + type: string + consumes: + - application/json + tags: + - tasks + delete: + operationId: tasks_tasks_delete + responses: + "204": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Task. + type: integer + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: sites + required: false + in: query + description: "" + type: string + - name: editors + required: false + in: query + description: "" + type: string + tags: + - tasks + /api/v1/tasks/tasks/{id}/export{var}/: + get: + operationId: tasks_detail_export + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Task. + type: integer + - name: var + required: true + in: path + description: "" + type: string + tags: + - tasks + /api/v1/tasks/tasks/{id}/toggle-site/: + put: + operationId: tasks_tasks_toggle_site + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this Task. + type: integer + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this task (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this task. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this task. + type: string + locked: + description: Designates whether this task can be changed. + type: boolean + order: + description: The position of this task in lists. + type: integer + available: + description: Designates whether this task is generally available for projects. + type: boolean + catalogs: + description: The catalogs this task can be used with. An empty list implies that + this task can be used with every catalog. + type: array + items: + type: string + sites: + description: The sites this task belongs to (in a multi site setup). + type: array + items: + type: string + editors: + description: The sites that can edit this task (in a multi site setup). + type: array + items: + type: string + groups: + description: The groups for which this task is active. + type: array + items: + type: string + start_attribute: + description: The attribute that is setting the start date for this task. + type: integer + end_attribute: + description: The attribute that is setting the end date for this task (optional, + if no end date attribute is given, the start date attribute + sets also the end date). + type: integer + days_before: + description: Additional days before the start date. + type: integer + days_after: + description: Additional days after the end date. + type: integer + conditions: + description: The list of conditions evaluated for this task. + type: array + items: + type: string + title_en: + description: "" + type: string + text_en: + description: "" + type: string + title_de: + description: "" + type: string + text_de: + description: "" + type: string + required: + - uri_prefix + - uri_path + consumes: + - application/json + tags: + - tasks + /api/v1/views/views/: + get: + operationId: views_views_list + responses: + "200": + description: "" + parameters: + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: sites + required: false + in: query + description: "" + type: string + - name: editors + required: false + in: query + description: "" + type: string + tags: + - views + post: + operationId: views_views_create + responses: + "201": + description: "" + parameters: + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this view (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this view. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this view. + type: string + locked: + description: Designates whether this view can be changed. + type: boolean + order: + description: The position of this view in lists. + type: integer + available: + description: Designates whether this view is generally available for projects. + type: boolean + catalogs: + description: The catalogs this view can be used with. An empty list implies that + this view can be used with every catalog. + type: array + items: + type: string + sites: + description: The sites this view belongs to (in a multi site setup). + type: array + items: + type: string + editors: + description: The sites that can edit this view (in a multi site setup). + type: array + items: + type: string + groups: + description: The groups for which this view is active. + type: array + items: + type: string + template: + description: The template for this view, written in Django template language. + type: string + title_en: + description: "" + type: string + help_en: + description: "" + type: string + title_de: + description: "" + type: string + help_de: + description: "" + type: string + required: + - uri_prefix + - uri_path + consumes: + - application/json + tags: + - views + /api/v1/views/views/export{var}/: + get: + operationId: views_export + responses: + "200": + description: "" + parameters: + - name: var + required: true + in: path + description: "" + type: string + tags: + - views + /api/v1/views/views/index/: + get: + operationId: views_views_index + responses: + "200": + description: "" + parameters: [] + tags: + - views + /api/v1/views/views/{id}/: + get: + operationId: views_views_read + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this View. + type: integer + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: sites + required: false + in: query + description: "" + type: string + - name: editors + required: false + in: query + description: "" + type: string + tags: + - views + put: + operationId: views_views_update + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this View. + type: integer + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: sites + required: false + in: query + description: "" + type: string + - name: editors + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this view (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this view. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this view. + type: string + locked: + description: Designates whether this view can be changed. + type: boolean + order: + description: The position of this view in lists. + type: integer + available: + description: Designates whether this view is generally available for projects. + type: boolean + catalogs: + description: The catalogs this view can be used with. An empty list implies that + this view can be used with every catalog. + type: array + items: + type: string + sites: + description: The sites this view belongs to (in a multi site setup). + type: array + items: + type: string + editors: + description: The sites that can edit this view (in a multi site setup). + type: array + items: + type: string + groups: + description: The groups for which this view is active. + type: array + items: + type: string + template: + description: The template for this view, written in Django template language. + type: string + title_en: + description: "" + type: string + help_en: + description: "" + type: string + title_de: + description: "" + type: string + help_de: + description: "" + type: string + required: + - uri_prefix + - uri_path + consumes: + - application/json + tags: + - views + patch: + operationId: views_views_partial_update + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this View. + type: integer + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: sites + required: false + in: query + description: "" + type: string + - name: editors + required: false + in: query + description: "" + type: string + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this view (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this view. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this view. + type: string + locked: + description: Designates whether this view can be changed. + type: boolean + order: + description: The position of this view in lists. + type: integer + available: + description: Designates whether this view is generally available for projects. + type: boolean + catalogs: + description: The catalogs this view can be used with. An empty list implies that + this view can be used with every catalog. + type: array + items: + type: string + sites: + description: The sites this view belongs to (in a multi site setup). + type: array + items: + type: string + editors: + description: The sites that can edit this view (in a multi site setup). + type: array + items: + type: string + groups: + description: The groups for which this view is active. + type: array + items: + type: string + template: + description: The template for this view, written in Django template language. + type: string + title_en: + description: "" + type: string + help_en: + description: "" + type: string + title_de: + description: "" + type: string + help_de: + description: "" + type: string + consumes: + - application/json + tags: + - views + delete: + operationId: views_views_delete + responses: + "204": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this View. + type: integer + - name: uri + required: false + in: query + description: "" + type: string + - name: uri_prefix + required: false + in: query + description: "" + type: string + - name: uri_path + required: false + in: query + description: "" + type: string + - name: comment + required: false + in: query + description: "" + type: string + - name: sites + required: false + in: query + description: "" + type: string + - name: editors + required: false + in: query + description: "" + type: string + tags: + - views + /api/v1/views/views/{id}/export{var}/: + get: + operationId: views_detail_export + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this View. + type: integer + - name: var + required: true + in: path + description: "" + type: string + tags: + - views + /api/v1/views/views/{id}/toggle-site/: + put: + operationId: views_views_toggle_site + responses: + "200": + description: "" + parameters: + - name: id + required: true + in: path + description: A unique integer value identifying this View. + type: integer + - name: data + in: body + schema: + type: object + properties: + uri: + description: The Uniform Resource Identifier of this view (auto-generated). + type: string + uri_prefix: + description: The prefix for the URI of this view. + type: string + uri_path: + description: "" + type: string + comment: + description: Additional internal information about this view. + type: string + locked: + description: Designates whether this view can be changed. + type: boolean + order: + description: The position of this view in lists. + type: integer + available: + description: Designates whether this view is generally available for projects. + type: boolean + catalogs: + description: The catalogs this view can be used with. An empty list implies that + this view can be used with every catalog. + type: array + items: + type: string + sites: + description: The sites this view belongs to (in a multi site setup). + type: array + items: + type: string + editors: + description: The sites that can edit this view (in a multi site setup). + type: array + items: + type: string + groups: + description: The groups for which this view is active. + type: array + items: + type: string + template: + description: The template for this view, written in Django template language. + type: string + title_en: + description: "" + type: string + help_en: + description: "" + type: string + title_de: + description: "" + type: string + help_de: + description: "" + type: string + required: + - uri_prefix + - uri_path + consumes: + - application/json + tags: + - views +securityDefinitions: + basic: + type: basic diff --git a/pyproject.toml b/pyproject.toml index 4b34955878..2e92174182 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -55,6 +55,7 @@ dependencies = [ "django-widget-tweaks>=1.5,<2.0", "djangorestframework>=3.15,<4.0", "drf-extensions>=0.7.1,<1.0", + "drf-spectacular>=0.28.0,<1.0.0", "iso8601>=2.0,<3.0", "markdown>=3.4,<4.0", "packaging>=23.2,<25.0", diff --git a/rdmo/core/settings.py b/rdmo/core/settings.py index aaa3fa80e0..6d3dbc9e6b 100644 --- a/rdmo/core/settings.py +++ b/rdmo/core/settings.py @@ -42,7 +42,7 @@ 'mptt', 'rules', # openapi specification tools - 'rest_framework_swagger' + 'drf_spectacular', ] MIDDLEWARE = [ @@ -179,10 +179,16 @@ } } +# Ref: https://www.django-rest-framework.org/api-guide/settings/#settings REST_FRAMEWORK = { - 'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema', + 'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema', 'UNICODE_JSON': False, - 'DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.NamespaceVersioning', + # TODO + # https://drf-spectacular.readthedocs.io/en/latest/faq.html#i-get-an-empty-schema-or-endpoints-are-missing + 'DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.URLPathVersioning', + # 'DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.NamespaceVersioning', + 'DEFAULT_VERSION': 'v1', + 'ALLOWED_VERSIONS': ('v1', ), 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework.authentication.BasicAuthentication', 'rest_framework.authentication.TokenAuthentication', @@ -193,6 +199,17 @@ ) } +# Ref: https://drf-spectacular.readthedocs.io/en/latest/settings.html#settings +SPECTACULAR_SETTINGS = { + 'TITLE': 'RDMO API', + 'VERSION': None, # this renders version as v1 from the url path in swagger ui, otherwise it would be 0.0.0 (v1) + 'SERVE_INCLUDE_SCHEMA': False, + 'SCHEMA_PATH_PREFIX': '/api/v[0-9]', # url path like '/api/v1/accounts' yields tag 'accounts' + 'SWAGGER_UI_SETTINGS': { + 'docExpansion': 'none' # collapse all tags by default + } +} + SETTINGS_EXPORT = [ 'SITE_ID', 'LOGIN_URL', diff --git a/rdmo/core/static/core/css/swagger.scss b/rdmo/core/static/core/css/swagger.scss index c7f342317b..84400fd5be 100644 --- a/rdmo/core/static/core/css/swagger.scss +++ b/rdmo/core/static/core/css/swagger.scss @@ -1,3 +1,5 @@ +# TODO: Can this be removed as well? + @import 'core/css/variables'; .topbar { diff --git a/rdmo/core/swagger.py b/rdmo/core/swagger.py deleted file mode 100644 index d95fc6a701..0000000000 --- a/rdmo/core/swagger.py +++ /dev/null @@ -1,25 +0,0 @@ -from django.contrib.auth.mixins import LoginRequiredMixin - -from rest_framework.response import Response -from rest_framework.schemas import SchemaGenerator -from rest_framework.views import APIView - -from rest_framework_swagger import renderers - -from .urls.v1 import urlpatterns - - -class SwaggerSchemaView(LoginRequiredMixin, APIView): - renderer_classes = [ - renderers.OpenAPIRenderer, - renderers.SwaggerUIRenderer, - ] - - def get(self, request): - generator = SchemaGenerator( - title="RDMO API", - patterns=urlpatterns, - url=request.path - ) - schema = generator.get_schema(request=request) - return Response(schema) diff --git a/rdmo/core/templates/rest_framework_swagger/index.html b/rdmo/core/templates/rest_framework_swagger/index.html deleted file mode 100644 index 13ef5c5ec9..0000000000 --- a/rdmo/core/templates/rest_framework_swagger/index.html +++ /dev/null @@ -1,70 +0,0 @@ -{% load i18n %} -{% load static %} - - - - - Swagger UI - - - - {% block extra_styles %} - {# -- Add any additional CSS scripts here -- #} - {% endblock %} - - - -
-
-
-
- - Swagger Logo - swagger - -
- {% if USE_SESSION_AUTH %} - {% if request.user.is_authenticated %} - {% trans "Logout" %} - {% else %} - {% trans "Session Login" %} - {% endif %} - {% endif %} -
-
-
-
- {% if USE_SESSION_AUTH %} -
- {% block user_context_message %} - {% if request.user.is_authenticated %} - {% trans "You are logged in as: " %}{{ request.user }} - {% else %} - {% trans "Viewing as an anonymous user" %} - {% endif %} - {% endblock %} -
- {% endif %} -
- -
- {% csrf_token %} - - - - - - - {% block extra_scripts %} - {# -- Add any additional scripts here -- #} - {% endblock %} - - - diff --git a/rdmo/core/tests/test_openapi.py b/rdmo/core/tests/test_openapi.py new file mode 100644 index 0000000000..f22fdf2f11 --- /dev/null +++ b/rdmo/core/tests/test_openapi.py @@ -0,0 +1,48 @@ +import pytest + +from django.contrib.auth.models import User + +from rest_framework.status import HTTP_200_OK, HTTP_302_FOUND + +pytestmark = pytest.mark.django_db + +users = ( + ("admin", HTTP_200_OK), + ("user", HTTP_200_OK), + ("anonymous", HTTP_302_FOUND), +) + + +@pytest.mark.parametrize("username,status_code", users) +def test_openapi_schema(client, username, status_code): + if username != "anonymous": + user = User.objects.get(username=username) + client.force_login(user) + response = client.get("/api/v1/") + assert response.status_code == status_code + # TODO check yaml response + # TODO check json response + + +@pytest.mark.parametrize("username,status_code", users) +def test_openapi_swagger_ui(client, username, status_code): + if username != "anonymous": + user = User.objects.get(username=username) + client.force_login(user) + response = client.get("/api/v1/swagger/") + assert response.status_code == status_code + if username != "anonymous": + # logged in user can access the swagger ui + assert '
' in str(response.content) + + +@pytest.mark.parametrize("username,status_code", users) +def test_openapi_redoc_ui(client, username, status_code): + if username != "anonymous": + user = User.objects.get(username=username) + client.force_login(user) + response = client.get("/api/v1/redoc/") + assert response.status_code == status_code + if username != "anonymous": + # logged in user can access the redoc ui + assert '' in str(response.content) diff --git a/rdmo/core/tests/test_swagger.py b/rdmo/core/tests/test_swagger.py deleted file mode 100644 index f56181845b..0000000000 --- a/rdmo/core/tests/test_swagger.py +++ /dev/null @@ -1,19 +0,0 @@ -import pytest - -users = ( - ('admin', 'admin'), - ('user', 'user'), - ('anonymous', None), -) - - -@pytest.mark.parametrize('username,password', users) -def test_swagger(db, client, username, password): - client.login(username=username, password=password) - - response = client.get('/api/v1/') - - if password: - assert response.status_code == 200 - else: - assert response.status_code == 302 diff --git a/rdmo/core/urls/openapi.py b/rdmo/core/urls/openapi.py new file mode 100644 index 0000000000..88c7e7e6ad --- /dev/null +++ b/rdmo/core/urls/openapi.py @@ -0,0 +1,15 @@ +from django.contrib.auth.decorators import login_required +from django.urls import path + +from drf_spectacular.views import SpectacularAPIView, SpectacularRedocView, SpectacularSwaggerView + +# TODO: maybe generate the schema.yml as part of the build process? + +urlpatterns = [ + # http://127.0.0.1:8000/api/v1/ + path('', login_required(SpectacularAPIView.as_view()), name='schema'), + # http://127.0.0.1:8000/api/v1/swagger/ + path('swagger/', login_required(SpectacularSwaggerView.as_view(url_name='schema')), name='swagger-ui'), + # http://127.0.0.1:8000/api/v1/redoc/ + path('redoc/', login_required(SpectacularRedocView.as_view(url_name='schema')), name='redoc-ui') +] diff --git a/rdmo/core/urls/swagger.py b/rdmo/core/urls/swagger.py deleted file mode 100644 index 3a2caff2f9..0000000000 --- a/rdmo/core/urls/swagger.py +++ /dev/null @@ -1,7 +0,0 @@ -from django.urls import path - -from ..swagger import SwaggerSchemaView - -urlpatterns = [ - path('', SwaggerSchemaView.as_view()), -] diff --git a/testing/config/urls.py b/testing/config/urls.py index 2b8747a97a..464db12c5e 100644 --- a/testing/config/urls.py +++ b/testing/config/urls.py @@ -1,5 +1,5 @@ from django.contrib import admin -from django.urls import include, path +from django.urls import include, path, re_path from rdmo.core.views import about, home @@ -8,8 +8,10 @@ path('about/', about, name='about'), path('', include('rdmo.core.urls')), + # re_path(r'^api/(?P(v1))/', include('rdmo.core.urls.v1')), path('api/v1/', include('rdmo.core.urls.v1')), - path('api/v1/', include('rdmo.core.urls.swagger')), + re_path(r'^api/(?P(v1))/', include('rdmo.core.urls.openapi')), + # path('api/v1/', include('rdmo.core.urls.openapi', namespace='v1')), path('admin/', admin.site.urls), ]