openapi: 3.0.3 info: title: Drone REST Builds Templates API description: The Drone REST API provides programmatic access to the Drone CI/CD platform, enabling management of builds, repositories, secrets, cron jobs, templates, and user accounts. Authentication is performed using bearer tokens retrieved from the Drone user interface profile page. version: 1.0.0 contact: name: Drone Support url: https://docs.drone.io/ license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 servers: - url: https://your-drone-server description: Your self-hosted Drone server security: - BearerAuth: [] tags: - name: Templates description: Reusable pipeline template management. paths: /api/templates: get: operationId: listAllTemplates summary: List all templates description: Returns a list of all pipeline templates. Requires admin privileges. tags: - Templates responses: '200': description: List of templates. content: application/json: schema: type: array items: $ref: '#/components/schemas/Template' '401': $ref: '#/components/responses/Unauthorized' /api/templates/{namespace}: parameters: - name: namespace in: path required: true schema: type: string description: The template namespace/organization. get: operationId: listNamespaceTemplates summary: List templates by namespace description: Returns a list of pipeline templates for the specified namespace. tags: - Templates responses: '200': description: List of templates. content: application/json: schema: type: array items: $ref: '#/components/schemas/Template' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createTemplate summary: Create a template description: Creates a new pipeline template in the specified namespace. tags: - Templates requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Template' responses: '200': description: Created template. content: application/json: schema: $ref: '#/components/schemas/Template' '401': $ref: '#/components/responses/Unauthorized' /api/templates/{namespace}/{name}: parameters: - name: namespace in: path required: true schema: type: string - name: name in: path required: true schema: type: string description: The template name. get: operationId: getTemplate summary: Get a template description: Returns a pipeline template by namespace and name. tags: - Templates responses: '200': description: Template details. content: application/json: schema: $ref: '#/components/schemas/Template' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' patch: operationId: updateTemplate summary: Update a template description: Updates an existing pipeline template. tags: - Templates requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Template' responses: '200': description: Updated template. content: application/json: schema: $ref: '#/components/schemas/Template' '401': $ref: '#/components/responses/Unauthorized' delete: operationId: deleteTemplate summary: Delete a template description: Deletes a pipeline template. tags: - Templates responses: '204': description: Template deleted. '401': $ref: '#/components/responses/Unauthorized' components: schemas: Template: type: object description: Represents a pipeline template stored in Drone. properties: name: type: string data: type: string description: Template content (YAML/Jsonnet). Error: type: object description: API error response. properties: code: type: integer message: type: string responses: NotFound: description: Resource not found. content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Authentication credentials missing or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: BearerAuth: type: http scheme: bearer description: Bearer token retrieved from the Drone user interface profile page.