openapi: 3.0.3 info: title: Unleash Admin Addons Release Templates API version: 7.4.1 description: Create, update, and delete [Unleash addons](https://docs.getunleash.io/addons). servers: - url: https://app.unleash-instance.example.com description: Your Unleash instance (replace with your actual URL) security: - apiKey: [] - bearerToken: [] tags: - name: Release Templates description: API for managing [release templates](https://docs.getunleash.io/concepts/release-templates). paths: /api/admin/release-plan-templates: get: tags: - Release Templates operationId: getReleaseTemplates summary: Get All Release Templates. description: '**Enterprise feature** Returns a list of all release templates.' responses: '200': description: '#/components/schemas/releasePlanTemplateSchema' content: application/json: schema: $ref: '#/components/schemas/releasePlanTemplateSchema' '401': description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: AuthenticationRequired description: The name of the error kind message: type: string example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login. description: A description of what went wrong. post: tags: - Release Templates operationId: createReleaseTemplate summary: Create a Release Template. description: '**Enterprise feature** Creates and returns a release template.' responses: '200': description: '#/components/schemas/releasePlanTemplateSchema' content: application/json: schema: $ref: '#/components/schemas/releasePlanTemplateSchema' '401': description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: AuthenticationRequired description: The name of the error kind message: type: string example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login. description: A description of what went wrong. '409': description: The provided resource can not be created or updated because it would conflict with the current state of the resource or with an already existing resource, respectively. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NameExistsError description: The name of the error kind message: type: string example: There is already a feature called "my-awesome-feature". description: A description of what went wrong. /api/admin/release-plan-templates/{templateId}: get: tags: - Release Templates operationId: getReleaseTemplate summary: Get a Release Template by Its Id. description: '**Enterprise feature** Finds and returns a release template by the provided id.' responses: '200': description: '#/components/schemas/releasePlanTemplateSchema' content: application/json: schema: $ref: '#/components/schemas/releasePlanTemplateSchema' '401': description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: AuthenticationRequired description: The name of the error kind message: type: string example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login. description: A description of what went wrong. parameters: - name: templateId in: path required: true schema: type: string delete: tags: - Release Templates operationId: deleteReleaseTemplate summary: Deletes a Release Template by Its Id. description: '**Enterprise feature** Finds and deletes a release template by the provided id.' responses: '200': description: This response has no body. '401': description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: AuthenticationRequired description: The name of the error kind message: type: string example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login. description: A description of what went wrong. '403': description: The provided user credentials are valid, but the user does not have the necessary permissions to perform this operation content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NoAccessError description: The name of the error kind message: type: string example: You need the "UPDATE_ADDON" permission to perform this action in the "development" environment. description: A description of what went wrong. parameters: - name: templateId in: path required: true schema: type: string put: tags: - Release Templates operationId: updateReleaseTemplate summary: Updates a Release Template by Its Id. description: '**Enterprise feature** Finds and updates a release template by the provided id. Will delete existing milestones and create new ones from the body' responses: '200': description: This response has no body. '401': description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: AuthenticationRequired description: The name of the error kind message: type: string example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login. description: A description of what went wrong. '403': description: The provided user credentials are valid, but the user does not have the necessary permissions to perform this operation content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NoAccessError description: The name of the error kind message: type: string example: You need the "UPDATE_ADDON" permission to perform this action in the "development" environment. description: A description of what went wrong. '409': description: The provided resource can not be created or updated because it would conflict with the current state of the resource or with an already existing resource, respectively. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NameExistsError description: The name of the error kind message: type: string example: There is already a feature called "my-awesome-feature". description: A description of what went wrong. parameters: - name: templateId in: path required: true schema: type: string /api/admin/release-plan-templates/archive/{templateId}: post: tags: - Release Templates operationId: archiveReleaseTemplate summary: Archives a Release Template by Its Id. description: '**Enterprise feature** Finds and archives a release template by the provided id.' responses: '200': description: This response has no body. '401': description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: AuthenticationRequired description: The name of the error kind message: type: string example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login. description: A description of what went wrong. '403': description: The provided user credentials are valid, but the user does not have the necessary permissions to perform this operation content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NoAccessError description: The name of the error kind message: type: string example: You need the "UPDATE_ADDON" permission to perform this action in the "development" environment. description: A description of what went wrong. parameters: - name: templateId in: path required: true schema: type: string /api/admin/release-plan-templates/{templateId}/milestones: post: tags: - Release Templates operationId: addMilestoneToReleaseTemplate summary: Adds a Milestone to a Release Template. description: '**Enterprise feature** Finds release template identified by its id and adds a milestone' responses: '200': description: '#/components/schemas/releasePlanMilestoneSchema' content: application/json: schema: $ref: '#/components/schemas/releasePlanMilestoneSchema' '401': description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: AuthenticationRequired description: The name of the error kind message: type: string example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login. description: A description of what went wrong. '403': description: The provided user credentials are valid, but the user does not have the necessary permissions to perform this operation content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NoAccessError description: The name of the error kind message: type: string example: You need the "UPDATE_ADDON" permission to perform this action in the "development" environment. description: A description of what went wrong. '404': description: The requested resource was not found. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NotFoundError description: The name of the error kind message: type: string example: Could not find the addon with ID "12345". description: A description of what went wrong. parameters: - name: templateId in: path required: true schema: type: string /api/admin/release-plan-templates/{templateId}/milestones/{milestoneId}: put: tags: - Release Templates operationId: updateReleaseTemplateMilestone summary: Updates Existing Milestone description: '**Enterprise feature** Finds milestone by id, and updates to body included in request' responses: '200': description: '#/components/schemas/releasePlanMilestoneSchema' content: application/json: schema: $ref: '#/components/schemas/releasePlanMilestoneSchema' '401': description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: AuthenticationRequired description: The name of the error kind message: type: string example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login. description: A description of what went wrong. '403': description: The provided user credentials are valid, but the user does not have the necessary permissions to perform this operation content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NoAccessError description: The name of the error kind message: type: string example: You need the "UPDATE_ADDON" permission to perform this action in the "development" environment. description: A description of what went wrong. '404': description: The requested resource was not found. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NotFoundError description: The name of the error kind message: type: string example: Could not find the addon with ID "12345". description: A description of what went wrong. parameters: - name: templateId in: path required: true schema: type: string - name: milestoneId in: path required: true schema: type: string delete: tags: - Release Templates operationId: removeReleaseTemplateMilestone summary: Removes an Existing Milestone description: '**Enterprise feature** Deletes an existing milestone and all attached strategies beneath it' responses: '200': description: This response has no body. '401': description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: AuthenticationRequired description: The name of the error kind message: type: string example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login. description: A description of what went wrong. '403': description: The provided user credentials are valid, but the user does not have the necessary permissions to perform this operation content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NoAccessError description: The name of the error kind message: type: string example: You need the "UPDATE_ADDON" permission to perform this action in the "development" environment. description: A description of what went wrong. '404': description: The requested resource was not found. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NotFoundError description: The name of the error kind message: type: string example: Could not find the addon with ID "12345". description: A description of what went wrong. parameters: - name: templateId in: path required: true schema: type: string - name: milestoneId in: path required: true schema: type: string /api/admin/release-plan-templates/{templateId}/milestones/{milestoneId}/strategies: post: tags: - Release Templates operationId: addStrategyToMilestone summary: Adds a Strategy to a Milestone. description: '**Enterprise feature** Finds milestone identified by its id and adds a strategy.' responses: '200': description: '#/components/schemas/releasePlanMilestoneSchema' content: application/json: schema: $ref: '#/components/schemas/releasePlanMilestoneSchema' '401': description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: AuthenticationRequired description: The name of the error kind message: type: string example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login. description: A description of what went wrong. '403': description: The provided user credentials are valid, but the user does not have the necessary permissions to perform this operation content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NoAccessError description: The name of the error kind message: type: string example: You need the "UPDATE_ADDON" permission to perform this action in the "development" environment. description: A description of what went wrong. '404': description: The requested resource was not found. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NotFoundError description: The name of the error kind message: type: string example: Could not find the addon with ID "12345". description: A description of what went wrong. parameters: - name: templateId in: path required: true schema: type: string - name: milestoneId in: path required: true schema: type: string /api/admin/release-plan-templates/{templateId}/milestones/{milestoneId}/strategies/{strategyId}: put: tags: - Release Templates operationId: updateMilestoneStrategy summary: Updates a Strategy Attached to a Milestone description: '**Enterprise feature** Overwrites existing strategy configuration for the strategy referenced by the id' responses: '200': description: '#/components/schemas/releasePlanMilestoneStrategySchema' content: application/json: schema: $ref: '#/components/schemas/releasePlanMilestoneStrategySchema' '401': description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: AuthenticationRequired description: The name of the error kind message: type: string example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login. description: A description of what went wrong. '403': description: The provided user credentials are valid, but the user does not have the necessary permissions to perform this operation content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NoAccessError description: The name of the error kind message: type: string example: You need the "UPDATE_ADDON" permission to perform this action in the "development" environment. description: A description of what went wrong. '404': description: The requested resource was not found. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NotFoundError description: The name of the error kind message: type: string example: Could not find the addon with ID "12345". description: A description of what went wrong. parameters: - name: templateId in: path required: true schema: type: string - name: milestoneId in: path required: true schema: type: string - name: strategyId in: path required: true schema: type: string delete: tags: - Release Templates operationId: remoteMilestoneStrategy summary: Removes a Strategy Attached to a Milestone description: '**Enterprise feature** Deletes the milestone strategy' responses: '200': description: This response has no body. '401': description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: AuthenticationRequired description: The name of the error kind message: type: string example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login. description: A description of what went wrong. '403': description: The provided user credentials are valid, but the user does not have the necessary permissions to perform this operation content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NoAccessError description: The name of the error kind message: type: string example: You need the "UPDATE_ADDON" permission to perform this action in the "development" environment. description: A description of what went wrong. '404': description: The requested resource was not found. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NotFoundError description: The name of the error kind message: type: string example: Could not find the addon with ID "12345". description: A description of what went wrong. parameters: - name: templateId in: path required: true schema: type: string - name: milestoneId in: path required: true schema: type: string - name: strategyId in: path required: true schema: type: string /api/admin/projects/{project}/features/{featureName}/environments/{environment}/release_plans: get: tags: - Release Templates deprecated: true operationId: oldGetReleasePlans summary: Get Release Plans. description: '**Enterprise feature** Returns a list of all release plans for a specific feature flag and environment. Deprecated, please use /release-plans instead.' responses: '200': description: '#/components/schemas/releasePlanSchema' content: application/json: schema: $ref: '#/components/schemas/releasePlanSchema' '401': description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: AuthenticationRequired description: The name of the error kind message: type: string example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login. description: A description of what went wrong. parameters: - name: project in: path required: true schema: type: string - name: featureName in: path required: true schema: type: string - name: environment in: path required: true schema: type: string post: tags: - Release Templates deprecated: true operationId: oldAddReleasePlan requestBody: description: '#/components/schemas/releasePlanTemplateIdSchema' required: true content: application/json: schema: $ref: '#/components/schemas/releasePlanTemplateIdSchema' summary: Add a Release Plan. description: '**Enterprise feature** Adds a release plan to a specific feature flag and environment. Deprecated, please use /release-plans instead.' responses: '200': description: '#/components/schemas/releasePlanSchema' content: application/json: schema: $ref: '#/components/schemas/releasePlanSchema' '401': description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: AuthenticationRequired description: The name of the error kind message: type: string example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login. description: A description of what went wrong. '409': description: The provided resource can not be created or updated because it would conflict with the current state of the resource or with an already existing resource, respectively. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NameExistsError description: The name of the error kind message: type: string example: There is already a feature called "my-awesome-feature". description: A description of what went wrong. parameters: - name: project in: path required: true schema: type: string - name: featureName in: path required: true schema: type: string - name: environment in: path required: true schema: type: string /api/admin/projects/{project}/features/{featureName}/environments/{environment}/release-plans: get: tags: - Release Templates operationId: getReleasePlans summary: Get Release Plans. description: '**Enterprise feature** Returns a list of all release plans for a specific feature flag and environment.' responses: '200': description: '#/components/schemas/releasePlanSchema' content: application/json: schema: $ref: '#/components/schemas/releasePlanSchema' '401': description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: AuthenticationRequired description: The name of the error kind message: type: string example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login. description: A description of what went wrong. parameters: - name: project in: path required: true schema: type: string - name: featureName in: path required: true schema: type: string - name: environment in: path required: true schema: type: string post: tags: - Release Templates operationId: addReleasePlan requestBody: description: '#/components/schemas/releasePlanTemplateIdSchema' required: true content: application/json: schema: $ref: '#/components/schemas/releasePlanTemplateIdSchema' summary: Add a Release Plan. description: '**Enterprise feature** Adds a release plan to a specific feature flag and environment.' responses: '200': description: '#/components/schemas/releasePlanSchema' content: application/json: schema: $ref: '#/components/schemas/releasePlanSchema' '401': description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: AuthenticationRequired description: The name of the error kind message: type: string example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login. description: A description of what went wrong. '409': description: The provided resource can not be created or updated because it would conflict with the current state of the resource or with an already existing resource, respectively. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NameExistsError description: The name of the error kind message: type: string example: There is already a feature called "my-awesome-feature". description: A description of what went wrong. parameters: - name: project in: path required: true schema: type: string - name: featureName in: path required: true schema: type: string - name: environment in: path required: true schema: type: string /api/admin/projects/{project}/features/{featureName}/environments/{environment}/release_plans/{planId}: delete: tags: - Release Templates deprecated: true operationId: oldRemoveReleasePlan summary: Remove a Release Plan. description: '**Enterprise feature** Removes a release plan from a specific feature flag and environment. Deprecated, please use /release-plans/:planId instead.' responses: '200': description: This response has no body. '401': description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: AuthenticationRequired description: The name of the error kind message: type: string example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login. description: A description of what went wrong. '403': description: The provided user credentials are valid, but the user does not have the necessary permissions to perform this operation content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NoAccessError description: The name of the error kind message: type: string example: You need the "UPDATE_ADDON" permission to perform this action in the "development" environment. description: A description of what went wrong. parameters: - name: project in: path required: true schema: type: string - name: featureName in: path required: true schema: type: string - name: environment in: path required: true schema: type: string - name: planId in: path required: true schema: type: string /api/admin/projects/{project}/features/{featureName}/environments/{environment}/release-plans/{planId}: delete: tags: - Release Templates operationId: removeReleasePlan summary: Remove a Release Plan. description: '**Enterprise feature** Removes a release plan from a specific feature flag and environment.' responses: '200': description: This response has no body. '401': description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: AuthenticationRequired description: The name of the error kind message: type: string example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login. description: A description of what went wrong. '403': description: The provided user credentials are valid, but the user does not have the necessary permissions to perform this operation content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NoAccessError description: The name of the error kind message: type: string example: You need the "UPDATE_ADDON" permission to perform this action in the "development" environment. description: A description of what went wrong. parameters: - name: project in: path required: true schema: type: string - name: featureName in: path required: true schema: type: string - name: environment in: path required: true schema: type: string - name: planId in: path required: true schema: type: string ? /api/admin/projects/{project}/features/{featureName}/environments/{environment}/release_plans/{planId}/milestones/{milestoneId}/start : post: tags: - Release Templates deprecated: true operationId: oldStartMilestone summary: Start a Release Plan Milestone. description: '**Enterprise feature** Starts a release plan milestone for a specific feature flag and environment. Deprecated, please use /release-plans/:planId/milestones/:milestoneId/start instead.' responses: '200': description: '#/components/schemas/releasePlanMilestoneSchema' content: application/json: schema: $ref: '#/components/schemas/releasePlanMilestoneSchema' '401': description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: AuthenticationRequired description: The name of the error kind message: type: string example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login. description: A description of what went wrong. '403': description: The provided user credentials are valid, but the user does not have the necessary permissions to perform this operation content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NoAccessError description: The name of the error kind message: type: string example: You need the "UPDATE_ADDON" permission to perform this action in the "development" environment. description: A description of what went wrong. '404': description: The requested resource was not found. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NotFoundError description: The name of the error kind message: type: string example: Could not find the addon with ID "12345". description: A description of what went wrong. parameters: - name: project in: path required: true schema: type: string - name: featureName in: path required: true schema: type: string - name: environment in: path required: true schema: type: string - name: planId in: path required: true schema: type: string - name: milestoneId in: path required: true schema: type: string ? /api/admin/projects/{project}/features/{featureName}/environments/{environment}/release-plans/{planId}/milestones/{milestoneId}/start : post: tags: - Release Templates operationId: startMilestone summary: Start a Release Plan Milestone. description: '**Enterprise feature** Starts a release plan milestone for a specific feature flag and environment.' responses: '200': description: '#/components/schemas/releasePlanMilestoneSchema' content: application/json: schema: $ref: '#/components/schemas/releasePlanMilestoneSchema' '401': description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: AuthenticationRequired description: The name of the error kind message: type: string example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login. description: A description of what went wrong. '403': description: The provided user credentials are valid, but the user does not have the necessary permissions to perform this operation content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NoAccessError description: The name of the error kind message: type: string example: You need the "UPDATE_ADDON" permission to perform this action in the "development" environment. description: A description of what went wrong. '404': description: The requested resource was not found. content: application/json: schema: type: object properties: id: type: string example: 9c40958a-daac-400e-98fb-3bb438567008 description: The ID of the error instance name: type: string example: NotFoundError description: The name of the error kind message: type: string example: Could not find the addon with ID "12345". description: A description of what went wrong. parameters: - name: project in: path required: true schema: type: string - name: featureName in: path required: true schema: type: string - name: environment in: path required: true schema: type: string - name: planId in: path required: true schema: type: string - name: milestoneId in: path required: true schema: type: string components: schemas: releasePlanSchema: additionalProperties: false description: Schema representing the creation of a release plan. type: object required: - id - discriminator - name - featureName - environment - createdByUserId - createdAt - milestones - releasePlanTemplateId properties: id: type: string description: The release plan/template's ID. Release template IDs are ulids. example: 01JB9GGTGQYEQ9D40R17T3YVW2 nullable: false discriminator: type: string description: A field to distinguish between release plans and release templates. example: plan nullable: false enum: - plan name: type: string description: The name of the release template. example: My release plan description: type: string description: A description of the release template. example: This is my release plan nullable: true featureName: type: string description: The name of the feature that uses this release plan. example: my-feature environment: type: string description: The environment that this release plan is for. example: production createdByUserId: type: number description: 'Release template: The ID of the user who created this template.' example: 53 nullable: false createdAt: type: string format: date-time description: The date and time that the release template was created. example: '2022-01-01T00:00:00Z' nullable: false activeMilestoneId: type: string description: The ID of the currently active milestone in this release plan. example: 01JB9GGTGQYEQ9D40R17T3YVW1 nullable: true milestones: type: array description: A list of the milestones in this release template. items: $ref: '#/components/schemas/releasePlanMilestoneSchema' releasePlanTemplateId: type: string description: The ID of the release plan template that this release plan is based on. example: 01JB9GGTGQYEQ9D40R17T3YVW2 nullable: false safeguards: type: array description: An array of safeguards configured for this release plan. items: $ref: '#/components/schemas/safeguardSchema' releasePlanMilestoneStrategySchema: additionalProperties: false description: Schema representing the creation of a release plan milestone strategy. type: object required: - id - milestoneId - sortOrder - strategyName properties: id: type: string description: The milestone strategy's ID. Milestone strategy IDs are ulids. example: 01JB9GGTGQYEQ9D40R17T3YVW3 nullable: false milestoneId: type: string description: The ID of the milestone that this strategy belongs to. example: 01JB9GGTGQYEQ9D40R17T3YVW1 sortOrder: type: number description: The order of the strategy in the list example: 9999 title: type: string nullable: true description: A descriptive title for the strategy example: Gradual Rollout 25-Prod strategyName: type: string description: The name of the strategy type example: flexibleRollout parameters: description: An object containing the parameters for the strategy example: groupId: some_new rollout: '25' stickiness: sessionId $ref: '#/components/schemas/parametersSchema' constraints: type: array description: A list of the constraints attached to the strategy. See https://docs.getunleash.io/concepts/activation-strategies#constraints example: - values: - '1' - '2' inverted: false operator: IN contextName: appName caseInsensitive: false items: $ref: '#/components/schemas/constraintSchema' variants: type: array description: Strategy level variants items: $ref: '#/components/schemas/createStrategyVariantSchema' segments: type: array description: Ids of segments to use for this strategy example: - 1 - 2 items: type: number constraintSchema: additionalProperties: false type: object required: - contextName - operator description: A strategy constraint. For more information, refer to [the strategy constraint reference documentation](https://docs.getunleash.io/concepts/activation-strategies#constraints) properties: contextName: description: The name of the context field that this constraint should apply to. example: appName type: string operator: description: The operator to use when evaluating this constraint. For more information about the various operators, refer to [the strategy constraint operator documentation](https://docs.getunleash.io/concepts/activation-strategies#constraint-operators). type: string enum: - NOT_IN - IN - STR_ENDS_WITH - STR_STARTS_WITH - STR_CONTAINS - NUM_EQ - NUM_GT - NUM_GTE - NUM_LT - NUM_LTE - DATE_AFTER - DATE_BEFORE - SEMVER_EQ - SEMVER_GT - SEMVER_LT example: IN caseInsensitive: description: Whether the operator should be case sensitive or not. Defaults to `false` (being case sensitive). type: boolean default: false inverted: description: Whether the result should be negated or not. If `true`, will turn a `true` result into a `false` result and vice versa. type: boolean default: false values: type: array description: The context values that should be used for constraint evaluation. Use this property instead of `value` for properties that accept multiple values. items: type: string example: - my-app - my-other-app value: description: The context value that should be used for constraint evaluation. Use this property instead of `values` for properties that only accept single values. type: string example: my-app parametersSchema: type: object description: A list of parameters for a strategy additionalProperties: type: string safeguardSchema: type: object required: - id - action - triggerCondition - impactMetric description: A safeguard configuration for a release plan. additionalProperties: false properties: id: type: string description: The unique ULID identifier for this safeguard example: 01JB9GGTGQYEQ9D40R17T3YVW1 action: type: object required: - type - id additionalProperties: false description: The action to take when the safeguard is triggered. properties: type: type: string description: The type of action to perform. example: pauseReleasePlanProgressions id: type: string description: The ID of the release plan this safeguard applies to. example: 01JB9GGTGQYEQ9D40R17T3YVW2 triggerCondition: $ref: '#/components/schemas/safeguardTriggerConditionSchema' description: The condition that triggers the safeguard. impactMetric: type: object required: - id - metricName - timeRange - aggregationMode - labelSelectors additionalProperties: false properties: id: type: string description: The unique identifier for this impact metric example: 01JB9GGTGQYEQ9D40R17T3YVW1 metricName: type: string description: The Prometheus metric series to query. It includes both unleash prefix and metric type and display name example: unleash_counter_feature_toggle_usage_total timeRange: type: string enum: - hour - day - week - month description: The time range for the metric data. example: day aggregationMode: type: string description: The aggregation mode for the metric data. enum: - rps - count - avg - sum - p95 - p99 - p50 example: rps labelSelectors: type: object additionalProperties: type: array items: type: string description: The selected labels and their values for filtering the metric data. example: environment: - development project: - default description: The metric configuration used to evaluate the safeguard condition. safeguardTriggerConditionSchema: type: object required: - operator - threshold additionalProperties: false description: The condition that triggers the safeguard. properties: operator: type: string enum: - '>' - < description: The comparison operator for the threshold check. example: '>' threshold: type: number description: The threshold value to compare against. example: 100 releasePlanTemplateSchema: additionalProperties: false description: Schema representing the creation of a release template. type: object required: - id - discriminator - name - createdByUserId - createdAt properties: id: type: string description: The release plan/template's ID. Release template IDs are ulids. example: 01JB9GGTGQYEQ9D40R17T3YVW2 nullable: false discriminator: type: string description: A field to distinguish between release plans and release templates. example: template nullable: false enum: - template name: type: string description: The name of the release template. example: My release plan description: type: string description: A description of the release template. example: This is my release plan nullable: true createdByUserId: type: number description: 'Release template: The ID of the user who created this template.' example: 53 nullable: false createdAt: type: string format: date-time description: The date and time that the release template was created. example: '2022-01-01T00:00:00Z' nullable: false milestones: type: array description: A list of the milestones in this release template. items: $ref: '#/components/schemas/releasePlanMilestoneSchema' archivedAt: type: string format: date-time description: The date and time that the release template was archived. example: '2022-01-01T00:00:00Z' nullable: true createStrategyVariantSchema: type: object description: This is an experimental property. It may change or be removed as we work on it. Please don't depend on it yet. A strategy variant allows you to attach any data to strategies instead of only returning `true`/`false`. Strategy variants take precedence over feature variants. required: - name - weight - weightType - stickiness properties: name: type: string description: The variant name. Must be unique for this feature flag example: blue_group weight: type: integer description: The weight is the likelihood of any one user getting this variant. It is an integer between 0 and 1000. See the section on [variant weights](https://docs.getunleash.io/concepts/feature-flag-variants#variant-weight) for more information minimum: 0 maximum: 1000 weightType: description: Set to `fix` if this variant must have exactly the weight allocated to it. If the type is `variable`, the weight will adjust so that the total weight of all variants adds up to 1000. Refer to the [variant weight documentation](https://docs.getunleash.io/concepts/feature-flag-variants#variant-weight). type: string example: fix enum: - variable - fix stickiness: type: string description: The [stickiness](https://docs.getunleash.io/concepts/feature-flag-variants#variant-stickiness) to use for distribution of this variant. Stickiness is how Unleash guarantees that the same user gets the same variant every time example: custom.context.field payload: type: object required: - type - value description: Extra data configured for this variant properties: type: description: The type of the value. Commonly used types are string, number, json and csv. type: string enum: - json - csv - string - number value: description: The actual value of payload type: string example: type: json value: '{"color": "red"}' releasePlanTemplateIdSchema: additionalProperties: false description: Schema for creating a release plan for a feature flag environment by copying and applying the configuration from a release plan template. type: object required: - templateId properties: templateId: type: string description: The release plan template's ID. Release template IDs are ulids. example: 01JB9GGTGQYEQ9D40R17T3YVW2 nullable: false releasePlanMilestoneSchema: additionalProperties: false description: Schema representing the creation of a release plan milestone. type: object required: - id - name - sortOrder - releasePlanDefinitionId properties: id: type: string description: The milestone's ID. Milestone IDs are ulids. example: 01JB9GGTGQYEQ9D40R17T3YVW1 nullable: false name: type: string description: The name of the milestone. example: My milestone sortOrder: type: integer description: The order of the milestone in the release plan. example: 1 releasePlanDefinitionId: type: string description: The ID of the release plan/template that this milestone belongs to. example: 01JB9GGTGQYEQ9D40R17T3YVW2 startedAt: type: string format: date-time description: The date and time when the milestone was started. example: '2024-01-01T00:00:00.000Z' nullable: true transitionCondition: type: object additionalProperties: false required: - intervalMinutes properties: intervalMinutes: type: integer minimum: 1 description: The interval in minutes before transitioning example: 30 description: The condition configuration for the transition nullable: true progressionExecutedAt: type: string format: date-time description: The date and time when the milestone progression was executed. example: '2024-01-01T00:00:00.000Z' nullable: true pausedAt: type: string format: date-time description: The date and time when the milestone was paused. example: '2024-01-01T00:00:00.000Z' nullable: true strategies: type: array description: A list of strategies that are attached to this milestone. items: $ref: '#/components/schemas/releasePlanMilestoneStrategySchema' securitySchemes: apiKey: type: apiKey in: header name: Authorization description: API key needed to access this API bearerToken: type: http scheme: bearer description: API key needed to access this API, in Bearer token format