openapi: 3.1.0 info: title: Example OpenAPI definition paths: /widgets: post: requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/WidgetPost" responses: 201: $ref: "#/components/responses/WidgetResponse" /widgets/{id}: patch: parameters: - name: dataset_id in: path description: The UUID of a dataset required: true schema: type: string format: uuid requestBody: content: application/json+merge-patch: schema: $ref: "#/components/schemas/WidgetMergePatch" required: true responses: 200: $ref: "#/components/responses/WidgetResponse" 404: description: The requested ID was not found content: {} components: responses: WidgetResponse: content: application/json: schema: $ref: "#/components/schemas/Widget" schemas: ResourceStatus: type: string description: The current state of this resource. example: new enum: - new - updating - ready - error Widget: type: object title: "Widgetter" required: - created_at - id - metadata - sku - status - updated_at - vendor_id properties: id: type: string format: uuid example: "994fc99e-fa9f-454b-a3de-c1966ae61533" created_at: type: string format: date-time updated_at: type: string format: date-time status: $ref: "#/components/schemas/ResourceStatus" sku: type: string name: description: "The name of this widget." type: string vendor_id: type: string format: uuid metadata: $ref: "#/components/schemas/Metadata" additionalProperties: false WidgetPost: type: object title: "Widgetter" required: - metadata - sku - vendor_id properties: sku: type: string name: description: "The name of this widget." type: string vendor_id: type: string format: uuid metadata: $ref: "#/components/schemas/MetadataPost" additionalProperties: false WidgetPut: type: object title: "Widgetter" required: - metadata properties: name: description: "The name of this widget." type: string metadata: $ref: "#/components/schemas/MetadataPut" additionalProperties: false WidgetMergePatch: type: object title: "Widgetter" properties: name: description: "The name of this widget." oneOf: - type: string title: "Overwrite" description: "Pass this value to overwrite the existing value." - type: "null" title: "Clear" description: "Pass `null` to clear this field's existing value." metadata: $ref: "#/components/schemas/MetadataMergePatch" additionalProperties: false Metadata: type: object additionalProperties: type: - boolean - number - string MetadataPost: type: object additionalProperties: type: - boolean - number - string MetadataPut: type: object additionalProperties: type: - boolean - number - string MetadataMergePatch: type: object additionalProperties: type: - boolean - "null" - number - string