{ "openapi": "3.0.3", "info": { "title": "LaunchDarkly REST API", "description": "This documentation describes LaunchDarkly's REST API. To access the complete OpenAPI spec directly, use [Get OpenAPI spec](https://launchdarkly.com/docs/api/other/get-openapi-spec).\n\nTo learn how to use LaunchDarkly using the user interface (UI) instead, read our [product documentation](https://launchdarkly.com/docs/home).\n\n## Authentication\n\nLaunchDarkly's REST API uses the HTTPS protocol with a minimum TLS version of 1.2.\n\nAll REST API resources are authenticated with either [personal or service access tokens](https://launchdarkly.com/docs/home/account/api), or session cookies. Other authentication mechanisms are not supported. You can manage personal access tokens on your [**Authorization**](https://app.launchdarkly.com/settings/authorization) page in the LaunchDarkly UI.\n\nLaunchDarkly also has SDK keys, mobile keys, and client-side IDs that are used by our server-side SDKs, mobile SDKs, and JavaScript-based SDKs, respectively. **These keys cannot be used to access our REST API**. These keys are environment-specific, and can only perform read-only operations such as fetching feature flag settings.\n\n| Auth mechanism | Allowed resources | Use cases |\n| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | -------------------------------------------------- |\n| [Personal or service access tokens](https://launchdarkly.com/docs/home/account/api) | Can be customized on a per-token basis | Building scripts, custom integrations, data export. |\n| SDK keys | Can only access read-only resources specific to server-side SDKs. Restricted to a single environment. | Server-side SDKs |\n| Mobile keys | Can only access read-only resources specific to mobile SDKs, and only for flags marked available to mobile keys. Restricted to a single environment. | Mobile SDKs |\n| Client-side ID | Can only access read-only resources specific to JavaScript-based client-side SDKs, and only for flags marked available to client-side. Restricted to a single environment. | Client-side JavaScript |\n\n> #### Keep your access tokens and SDK keys private\n>\n> Access tokens should _never_ be exposed in untrusted contexts. Never put an access token in client-side JavaScript, or embed it in a mobile application. LaunchDarkly has special mobile keys that you can embed in mobile apps. If you accidentally expose an access token or SDK key, you can reset it from your [**Authorization**](https://app.launchdarkly.com/settings/authorization) page.\n>\n> The client-side ID is safe to embed in untrusted contexts. It's designed for use in client-side JavaScript.\n\n### Authentication using request header\n\nThe preferred way to authenticate with the API is by adding an `Authorization` header containing your access token to your requests. The value of the `Authorization` header must be your access token.\n\nManage personal access tokens from the [**Authorization**](https://app.launchdarkly.com/settings/authorization) page.\n\n### Authentication using session cookie\n\nFor testing purposes, you can make API calls directly from your web browser. If you are logged in to the LaunchDarkly application, the API will use your existing session to authenticate calls.\n\nDepending on the permissions granted as part of your [role](https://launchdarkly.com/docs/home/account/roles), you may not have permission to perform some API calls. You will receive a `401` response code in that case.\n\n> ### Modifying the Origin header causes an error\n>\n> LaunchDarkly validates that the Origin header for any API request authenticated by a session cookie matches the expected Origin header. The expected Origin header is `https://app.launchdarkly.com`.\n>\n> If the Origin header does not match what's expected, LaunchDarkly returns an error. This error can prevent the LaunchDarkly app from working correctly.\n>\n> Any browser extension that intentionally changes the Origin header can cause this problem. For example, the `Allow-Control-Allow-Origin: *` Chrome extension changes the Origin header to `http://evil.com` and causes the app to fail.\n>\n> To prevent this error, do not modify your Origin header.\n>\n> LaunchDarkly does not require origin matching when authenticating with an access token, so this issue does not affect normal API usage.\n\n## Representations\n\nAll resources expect and return JSON response bodies. Error responses also send a JSON body. To learn more about the error format of the API, read [Errors](https://launchdarkly.com/docs/api#errors).\n\nIn practice this means that you always get a response with a `Content-Type` header set to `application/json`.\n\nIn addition, request bodies for `PATCH`, `POST`, and `PUT` requests must be encoded as JSON with a `Content-Type` header set to `application/json`.\n\n### Summary and detailed representations\n\nWhen you fetch a list of resources, the response includes only the most important attributes of each resource. This is a _summary representation_ of the resource. When you fetch an individual resource, such as a single feature flag, you receive a _detailed representation_ of the resource.\n\nThe best way to find a detailed representation is to follow links. Every summary representation includes a link to its detailed representation.\n\n### Expanding responses\n\nSometimes the detailed representation of a resource does not include all of the attributes of the resource by default. If this is the case, the request method will clearly document this and describe which attributes you can include in an expanded response.\n\nTo include the additional attributes, append the `expand` request parameter to your request and add a comma-separated list of the attributes to include. For example, when you append `?expand=members,maintainers` to the [Get team](https://launchdarkly.com/docs/api/teams/get-team) endpoint, the expanded response includes both of these attributes.\n\n### Links and addressability\n\nThe best way to navigate the API is by following links. These are attributes in representations that link to other resources. The API always uses the same format for links:\n\n- Links to other resources within the API are encapsulated in a `_links` object\n- If the resource has a corresponding link to HTML content on the site, it is stored in a special `_site` link\n\nEach link has two attributes:\n\n- An `href`, which contains the URL\n- A `type`, which describes the content type\n\nFor example, a feature resource might return the following:\n\n```json\n{\n \"_links\": {\n \"parent\": {\n \"href\": \"/api/features\",\n \"type\": \"application/json\"\n },\n \"self\": {\n \"href\": \"/api/features/sort.order\",\n \"type\": \"application/json\"\n }\n },\n \"_site\": {\n \"href\": \"/features/sort.order\",\n \"type\": \"text/html\"\n }\n}\n```\n\nFrom this, you can navigate to the parent collection of features by following the `parent` link, or navigate to the site page for the feature by following the `_site` link.\n\nCollections are always represented as a JSON object with an `items` attribute containing an array of representations. Like all other representations, collections have `_links` defined at the top level.\n\nPaginated collections include `first`, `last`, `next`, and `prev` links containing a URL with the respective set of elements in the collection.\n\n## Updates\n\nResources that accept partial updates use the `PATCH` verb. Most resources support the [JSON patch](https://launchdarkly.com/docs/api#updates-using-json-patch) format. Some resources also support the [JSON merge patch](https://launchdarkly.com/docs/api#updates-using-json-merge-patch) format, and some resources support the [semantic patch](https://launchdarkly.com/docs/api#updates-using-semantic-patch) format, which is a way to specify the modifications to perform as a set of executable instructions. Each resource supports optional [comments](https://launchdarkly.com/docs/api#updates-with-comments) that you can submit with updates. Comments appear in outgoing webhooks, the audit log, and other integrations.\n\nWhen a resource supports both JSON patch and semantic patch, we document both in the request method. However, the specific request body fields and descriptions included in our documentation only match one type of patch or the other.\n\n### Updates using JSON patch\n\n[JSON patch](https://datatracker.ietf.org/doc/html/rfc6902) is a way to specify the modifications to perform on a resource. JSON patch uses paths and a limited set of operations to describe how to transform the current state of the resource into a new state. JSON patch documents are always arrays, where each element contains an operation, a path to the field to update, and the new value.\n\nFor example, in this feature flag representation:\n\n```json\n{\n \"name\": \"New recommendations engine\",\n \"key\": \"engine.enable\",\n \"description\": \"This is the description\",\n ...\n}\n```\nYou can change the feature flag's description with the following patch document:\n\n```json\n[{ \"op\": \"replace\", \"path\": \"/description\", \"value\": \"This is the new description\" }]\n```\n\nYou can specify multiple modifications to perform in a single request. You can also test that certain preconditions are met before applying the patch:\n\n```json\n[\n { \"op\": \"test\", \"path\": \"/version\", \"value\": 10 },\n { \"op\": \"replace\", \"path\": \"/description\", \"value\": \"The new description\" }\n]\n```\n\nThe above patch request tests whether the feature flag's `version` is `10`, and if so, changes the feature flag's description.\n\nAttributes that are not editable, such as a resource's `_links`, have names that start with an underscore.\n\n### Updates using JSON merge patch\n\n[JSON merge patch](https://datatracker.ietf.org/doc/html/rfc7386) is another format for specifying the modifications to perform on a resource. JSON merge patch is less expressive than JSON patch. However, in many cases it is simpler to construct a merge patch document. For example, you can change a feature flag's description with the following merge patch document:\n\n```json\n{\n \"description\": \"New flag description\"\n}\n```\n\n### Updates using semantic patch\n\nSome resources support the semantic patch format. A semantic patch is a way to specify the modifications to perform on a resource as a set of executable instructions.\n\nSemantic patch allows you to be explicit about intent using precise, custom instructions. In many cases, you can define semantic patch instructions independently of the current state of the resource. This can be useful when defining a change that may be applied at a future date.\n\nTo make a semantic patch request, you must append `domain-model=launchdarkly.semanticpatch` to your `Content-Type` header.\n\nHere's how:\n\n```\nContent-Type: application/json; domain-model=launchdarkly.semanticpatch\n```\n\nIf you call a semantic patch resource without this header, you will receive a `400` response because your semantic patch will be interpreted as a JSON patch.\n\nThe body of a semantic patch request takes the following properties:\n\n* `comment` (string): (Optional) A description of the update.\n* `environmentKey` (string): (Required for some resources only) The environment key.\n* `instructions` (array): (Required) A list of actions the update should perform. Each action in the list must be an object with a `kind` property that indicates the instruction. If the instruction requires parameters, you must include those parameters as additional fields in the object. The documentation for each resource that supports semantic patch includes the available instructions and any additional parameters.\n\nFor example:\n\n```json\n{\n \"comment\": \"optional comment\",\n \"instructions\": [ {\"kind\": \"turnFlagOn\"} ]\n}\n```\n\nSemantic patches are not applied partially; either all of the instructions are applied or none of them are. If **any** instruction is invalid, the endpoint returns an error and will not change the resource. If all instructions are valid, the request succeeds and the resources are updated if necessary, or left unchanged if they are already in the state you request.\n\n### Updates with comments\n\nYou can submit optional comments with `PATCH` changes.\n\nTo submit a comment along with a JSON patch document, use the following format:\n\n```json\n{\n \"comment\": \"This is a comment string\",\n \"patch\": [{ \"op\": \"replace\", \"path\": \"/description\", \"value\": \"The new description\" }]\n}\n```\n\nTo submit a comment along with a JSON merge patch document, use the following format:\n\n```json\n{\n \"comment\": \"This is a comment string\",\n \"merge\": { \"description\": \"New flag description\" }\n}\n```\n\nTo submit a comment along with a semantic patch, use the following format:\n\n```json\n{\n \"comment\": \"This is a comment string\",\n \"instructions\": [ {\"kind\": \"turnFlagOn\"} ]\n}\n```\n\n## Errors\n\nThe API always returns errors in a common format. Here's an example:\n\n```json\n{\n \"code\": \"invalid_request\",\n \"message\": \"A feature with that key already exists\",\n \"id\": \"30ce6058-87da-11e4-b116-123b93f75cba\"\n}\n```\n\nThe `code` indicates the general class of error. The `message` is a human-readable explanation of what went wrong. The `id` is a unique identifier. Use it when you're working with LaunchDarkly Support to debug a problem with a specific API call.\n\n### HTTP status error response codes\n\n| Code | Definition | Description | Possible Solution |\n| ---- | ----------------- | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- |\n| 400 | Invalid request | The request cannot be understood. | Ensure JSON syntax in request body is correct. |\n| 401 | Invalid access token | Requestor is unauthorized or does not have permission for this API call. | Ensure your API access token is valid and has the appropriate permissions. |\n| 403 | Forbidden | Requestor does not have access to this resource. | Ensure that the account member or access token has proper permissions set. |\n| 404 | Invalid resource identifier | The requested resource is not valid. | Ensure that the resource is correctly identified by ID or key. |\n| 405 | Method not allowed | The request method is not allowed on this resource. | Ensure that the HTTP verb is correct. |\n| 409 | Conflict | The API request can not be completed because it conflicts with a concurrent API request. | Retry your request. |\n| 422 | Unprocessable entity | The API request can not be completed because the update description can not be understood. | Ensure that the request body is correct for the type of patch you are using, either JSON patch or semantic patch.\n| 429 | Too many requests | Read [Rate limiting](https://launchdarkly.com/docs/api#rate-limiting). | Wait and try again later. |\n\n## CORS\n\nThe LaunchDarkly API supports Cross Origin Resource Sharing (CORS) for AJAX requests from any origin. If an `Origin` header is given in a request, it will be echoed as an explicitly allowed origin. Otherwise the request returns a wildcard, `Access-Control-Allow-Origin: *`. For more information on CORS, read the [CORS W3C Recommendation](http://www.w3.org/TR/cors). Example CORS headers might look like:\n\n```http\nAccess-Control-Allow-Headers: Accept, Content-Type, Content-Length, Accept-Encoding, Authorization\nAccess-Control-Allow-Methods: OPTIONS, GET, DELETE, PATCH\nAccess-Control-Allow-Origin: *\nAccess-Control-Max-Age: 300\n```\n\nYou can make authenticated CORS calls just as you would make same-origin calls, using either [token or session-based authentication](https://launchdarkly.com/docs/api#authentication). If you are using session authentication, you should set the `withCredentials` property for your `xhr` request to `true`. You should never expose your access tokens to untrusted entities.\n\n## Rate limiting\n\nWe use several rate limiting strategies to ensure the availability of our APIs. Rate-limited calls to our APIs return a `429` status code. Calls to our APIs include headers indicating the current rate limit status. The specific headers returned depend on the API route being called. The limits differ based on the route, authentication mechanism, and other factors. Routes that are not rate limited may not contain any of the headers described below.\n\n> ### Rate limiting and SDKs\n>\n> LaunchDarkly SDKs are never rate limited and do not use the API endpoints defined here. LaunchDarkly uses a different set of approaches, including streaming/server-sent events and a global CDN, to ensure availability to the routes used by LaunchDarkly SDKs.\n\n### Global rate limits\n\nAuthenticated requests are subject to a global limit. This is the maximum number of calls that your account can make to the API per ten seconds. All service and personal access tokens on the account share this limit, so exceeding the limit with one access token will impact other tokens. Calls that are subject to global rate limits may return the headers below:\n\n| Header name | Description |\n| ------------------------------ | -------------------------------------------------------------------------------- |\n| `X-Ratelimit-Global-Remaining` | The maximum number of requests the account is permitted to make per ten seconds. |\n| `X-Ratelimit-Reset` | The time at which the current rate limit window resets in epoch milliseconds. |\n\nWe do not publicly document the specific number of calls that can be made globally. This limit may change, and we encourage clients to program against the specification, relying on the two headers defined above, rather than hardcoding to the current limit.\n\n### Route-level rate limits\n\nSome authenticated routes have custom rate limits. These also reset every ten seconds. Any service or personal access tokens hitting the same route share this limit, so exceeding the limit with one access token may impact other tokens. Calls that are subject to route-level rate limits return the headers below:\n\n| Header name | Description |\n| ----------------------------- | ----------------------------------------------------------------------------------------------------- |\n| `X-Ratelimit-Route-Remaining` | The maximum number of requests to the current route the account is permitted to make per ten seconds. |\n| `X-Ratelimit-Reset` | The time at which the current rate limit window resets in epoch milliseconds. |\n\nA _route_ represents a specific URL pattern and verb. For example, the [Delete environment](https://launchdarkly.com/docs/api/environments/delete-environment) endpoint is considered a single route, and each call to delete an environment counts against your route-level rate limit for that route.\n\nWe do not publicly document the specific number of calls that an account can make to each endpoint per ten seconds. These limits may change, and we encourage clients to program against the specification, relying on the two headers defined above, rather than hardcoding to the current limits.\n\n### IP-based rate limiting\n\nWe also employ IP-based rate limiting on some API routes. If you hit an IP-based rate limit, your API response will include a `Retry-After` header indicating how long to wait before re-trying the call. Clients must wait at least `Retry-After` seconds before making additional calls to our API, and should employ jitter and backoff strategies to avoid triggering rate limits again.\n\n## OpenAPI (Swagger) and client libraries\n\nWe have a [complete OpenAPI (Swagger) specification](https://app.launchdarkly.com/api/v2/openapi.json) for our API.\n\nWe auto-generate multiple client libraries based on our OpenAPI specification. To learn more, visit the [collection of client libraries on GitHub](https://github.com/search?q=topic%3Alaunchdarkly-api+org%3Alaunchdarkly&type=Repositories). Alternatively, you can use the specification to generate client libraries to interact with our REST API in your language of choice. Or, you can refer to our API endpoints' documentation for guidance on how to make requests with a common HTTP library in your language of choice.\n\nOur OpenAPI specification is supported by several API-based tools such as Postman and Insomnia. In many cases, you can directly import our specification to explore our APIs.\n\n## Method overriding\n\nSome firewalls and HTTP clients restrict the use of verbs other than `GET` and `POST`. In those environments, our API endpoints that use `DELETE`, `PATCH`, and `PUT` verbs are inaccessible.\n\nTo avoid this issue, our API supports the `X-HTTP-Method-Override` header, allowing clients to \"tunnel\" `DELETE`, `PATCH`, and `PUT` requests using a `POST` request.\n\nFor example, to call a `PATCH` endpoint using a `POST` request, you can include `X-HTTP-Method-Override:PATCH` as a header.\n\n## Beta resources\n\nWe sometimes release new API resources in **beta** status before we release them with general availability.\n\nResources that are in beta are still undergoing testing and development. They may change without notice, including becoming backwards incompatible.\n\nWe try to promote resources into general availability as quickly as possible. This happens after sufficient testing and when we're satisfied that we no longer need to make backwards-incompatible changes.\n\nWe mark beta resources with a \"Beta\" callout in our documentation, pictured below:\n\n> ### This feature is in beta\n>\n> To use this feature, pass in a header including the `LD-API-Version` key with value set to `beta`. Use this header with each call. To learn more, read [Beta resources](https://launchdarkly.com/docs/api#beta-resources).\n>\n> Resources that are in beta are still undergoing testing and development. They may change without notice, including becoming backwards incompatible.\n\n### Using beta resources\n\nTo use a beta resource, you must include a header in the request. If you call a beta resource without this header, you receive a `403` response.\n\nUse this header:\n\n```\nLD-API-Version: beta\n```\n\n## Federal and EU environments\n\nIn addition to the commercial versions, LaunchDarkly offers instances for federal agencies and those based in the European Union (EU).\n\n### Federal environments\n\nThe version of LaunchDarkly that is available on domains controlled by the United States government is different from the version of LaunchDarkly available to the general public. If you are an employee or contractor for a United States federal agency and use LaunchDarkly in your work, you likely use the federal instance of LaunchDarkly.\n\nIf you are working in the federal instance of LaunchDarkly, the base URI for each request is `https://app.launchdarkly.us`.\n\nTo learn more, read [LaunchDarkly in federal environments](https://launchdarkly.com/docs/home/infrastructure/federal).\n\n### EU environments\n\nThe version of LaunchDarkly that is available in the EU is different from the version of LaunchDarkly available to other regions. If you are based in the EU, you likely use the EU instance of LaunchDarkly. The LaunchDarkly EU instance complies with EU data residency principles, including the protection and confidentiality of EU customer information.\n\nIf you are working in the EU instance of LaunchDarkly, the base URI for each request is `https://app.eu.launchdarkly.com`.\n\nTo learn more, read [LaunchDarkly in the European Union (EU)](https://launchdarkly.com/docs/home/infrastructure/eu).\n\n## Versioning\n\nWe try hard to keep our REST API backwards compatible, but we occasionally have to make backwards-incompatible changes in the process of shipping new features. These breaking changes can cause unexpected behavior if you don't prepare for them accordingly.\n\nUpdates to our REST API include support for the latest features in LaunchDarkly. We also release a new version of our REST API every time we make a breaking change. We provide simultaneous support for multiple API versions so you can migrate from your current API version to a new version at your own pace.\n\n### Setting the API version per request\n\nYou can set the API version on a specific request by sending an `LD-API-Version` header, as shown in the example below:\n\n```\nLD-API-Version: 20240415\n```\n\nThe header value is the version number of the API version you would like to request. The number for each version corresponds to the date the version was released in `yyyymmdd` format. In the example above the version `20240415` corresponds to April 15, 2024.\n\n### Setting the API version per access token\n\nWhen you create an access token, you must specify a specific version of the API to use. This ensures that integrations using this token cannot be broken by version changes.\n\nTokens created before versioning was released have their version set to `20160426`, which is the version of the API that existed before the current versioning scheme, so that they continue working the same way they did before versioning.\n\nIf you would like to upgrade your integration to use a new API version, you can explicitly set the header described above.\n\n> ### Best practice: Set the header for every client or integration\n>\n> We recommend that you set the API version header explicitly in any client or integration you build.\n>\n> Only rely on the access token API version during manual testing.\n\n### API version changelog\n\n
| Version | \nChanges | \nEnd of life (EOL) | \n
|---|---|---|
| `20240415` | \n\n
| \n Current | \n
| `20220603` | \n\n
| \n 2025-04-15 | \n
| `20210729` | \n\n
| \n 2023-06-03 | \n
| `20191212` | \n\n
| \n 2022-07-29 | \n
| `20160426` | \n\n
| \n 2020-12-12 | \n
config parameter detailsformVariables in the manifest.json for this integration. It varies slightly based on the `integrationKey`.",
"parameters": [
{
"name": "projectKey",
"in": "path",
"description": "The project key",
"required": true,
"schema": {
"type": "string",
"format": "string",
"description": "The project key"
}
},
{
"name": "integrationKey",
"in": "path",
"description": "The integration key",
"required": true,
"schema": {
"type": "string",
"format": "string",
"description": "The integration key"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FlagImportConfigurationPost"
},
"example": {
"config": {
"environmentId": "The ID of the environment in the external system",
"ldApiKey": "An API key with create flag permissions in your LaunchDarkly account",
"ldMaintainer": "The ID of the member who will be the maintainer of the imported flags",
"ldTag": "A tag to apply to all flags imported to LaunchDarkly",
"splitTag": "If provided, imports only the flags from the external system with this tag. Leave blank to import all flags.",
"workspaceApiKey": "An API key with read permissions in the external feature management system",
"workspaceId": "The ID of the workspace in the external system"
},
"name": "Sample configuration",
"tags": [
"example-tag"
]
}
}
},
"required": true
},
"operationId": "createFlagImportConfiguration"
}
},
"/api/v2/integration-capabilities/flag-import/{projectKey}/{integrationKey}/{integrationId}": {
"get": {
"responses": {
"200": {
"description": "Flag import response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FlagImportIntegration"
}
}
}
},
"400": {
"description": "Invalid request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InvalidRequestErrorRep"
}
}
}
},
"401": {
"description": "Invalid access token",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UnauthorizedErrorRep"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ForbiddenErrorRep"
}
}
}
},
"404": {
"description": "Project or import configuration not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundErrorRep"
}
}
}
},
"409": {
"description": "Status conflict",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StatusConflictErrorRep"
}
}
}
},
"429": {
"description": "Rate limited",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RateLimitedErrorRep"
}
}
}
}
},
"tags": [
"Flag import configurations (beta)"
],
"summary": "Get a single flag import configuration",
"description": "Get a single flag import configuration by ID. The `integrationKey` path parameter identifies the feature management system from which the import occurs, for example, `split`.",
"parameters": [
{
"name": "projectKey",
"in": "path",
"description": "The project key",
"required": true,
"schema": {
"type": "string",
"format": "string",
"description": "The project key"
}
},
{
"name": "integrationKey",
"in": "path",
"description": "The integration key, for example, `split`",
"required": true,
"schema": {
"type": "string",
"format": "string",
"description": "The integration key, for example, `split`"
}
},
{
"name": "integrationId",
"in": "path",
"description": "The integration ID",
"required": true,
"schema": {
"type": "string",
"format": "string",
"description": "The integration ID"
}
}
],
"operationId": "getFlagImportConfiguration"
},
"patch": {
"responses": {
"200": {
"description": "Flag import response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FlagImportIntegration"
}
}
}
},
"400": {
"description": "Invalid request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InvalidRequestErrorRep"
}
}
}
},
"401": {
"description": "Invalid access token",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UnauthorizedErrorRep"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ForbiddenErrorRep"
}
}
}
},
"404": {
"description": "Project or import configuration not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundErrorRep"
}
}
}
},
"409": {
"description": "Status conflict",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StatusConflictErrorRep"
}
}
}
},
"429": {
"description": "Rate limited",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RateLimitedErrorRep"
}
}
}
}
},
"tags": [
"Flag import configurations (beta)"
],
"summary": "Update a flag import configuration",
"description": "Updating a flag import configuration uses a [JSON patch](https://datatracker.ietf.org/doc/html/rfc6902) representation of the desired changes. To learn more, read [Updates](https://launchdarkly.com/docs/api#updates).model in the request body requires a modelName and parameters, for example:\n\n```\n \"model\": {\n \"modelName\": \"claude-3-opus-20240229\",\n \"parameters\": {\n \"max_tokens\": 1024\n }\n }\n```\n",
"operationId": "postAIConfigVariation",
"parameters": [
{
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "configKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AIConfigVariationPost"
}
}
},
"description": "AI Config variation object to create",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AIConfigVariation"
}
}
},
"description": "AI Config variation created"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Create AI Config variation",
"tags": [
"AI Configs"
]
}
},
"/api/v2/projects/{projectKey}/ai-configs/{configKey}/variations/{variationKey}": {
"delete": {
"description": "Delete a specific variation of an AI Config by config key and variation key.",
"operationId": "deleteAIConfigVariation",
"parameters": [
{
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "configKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "variationKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"responses": {
"204": {
"description": "No content"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Delete AI Config variation",
"tags": [
"AI Configs"
]
},
"get": {
"description": "Get an AI Config variation by key. The response includes all variation versions for the given variation key.",
"operationId": "getAIConfigVariation",
"parameters": [
{
"example": "default",
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"example": "default",
"explode": false,
"in": "path",
"name": "configKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"example": "default",
"explode": false,
"in": "path",
"name": "variationKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AIConfigVariationsResponse"
}
}
},
"description": "Successful response"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Get AI Config variation",
"tags": [
"AI Configs"
]
},
"patch": {
"description": "Edit an existing variation of an AI Config. This creates a new version of the variation.\n\nThe request body must be a JSON object of the fields to update. The values you include replace the existing values for the fields.\n\nHere's an example:\n```\n {\n \"messages\": [\n {\n \"role\": \"system\",\n \"content\": \"The new message\"\n }\n ]\n }\n```\n",
"operationId": "patchAIConfigVariation",
"parameters": [
{
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "configKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "variationKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AIConfigVariationPatch"
}
}
},
"description": "AI Config variation object to update"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AIConfigVariation"
}
}
},
"description": "AI Config variation updated"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Update AI Config variation",
"tags": [
"AI Configs"
]
}
},
"/api/v2/projects/{projectKey}/ai-configs/{configKey}/metrics": {
"get": {
"description": "Retrieve usage metrics for an AI Config by config key.",
"operationId": "getAIConfigMetrics",
"parameters": [
{
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "configKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"description": "The starting time, as milliseconds since epoch (inclusive).",
"explode": true,
"in": "query",
"name": "from",
"required": true,
"schema": {
"type": "integer"
},
"style": "form"
},
{
"description": "The ending time, as milliseconds since epoch (exclusive). May not be more than 100 days after `from`.",
"explode": true,
"in": "query",
"name": "to",
"required": true,
"schema": {
"type": "integer"
},
"style": "form"
},
{
"description": "An environment key. Only metrics from this environment will be included.",
"explode": true,
"in": "query",
"name": "env",
"required": true,
"schema": {
"type": "string"
},
"style": "form"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Metrics"
}
}
},
"description": "Metrics computed"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Get AI Config metrics",
"tags": [
"AI Configs"
]
}
},
"/api/v2/projects/{projectKey}/ai-configs/{configKey}/metrics-by-variation": {
"get": {
"description": "Retrieve usage metrics for an AI Config by config key, with results split by variation.",
"operationId": "getAIConfigMetricsByVariation",
"parameters": [
{
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "configKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"description": "The starting time, as milliseconds since epoch (inclusive).",
"explode": true,
"in": "query",
"name": "from",
"required": true,
"schema": {
"type": "integer"
},
"style": "form"
},
{
"description": "The ending time, as milliseconds since epoch (exclusive). May not be more than 100 days after `from`.",
"explode": true,
"in": "query",
"name": "to",
"required": true,
"schema": {
"type": "integer"
},
"style": "form"
},
{
"description": "An environment key. Only metrics from this environment will be included.",
"explode": true,
"in": "query",
"name": "env",
"required": true,
"schema": {
"type": "string"
},
"style": "form"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MetricsByVariation"
}
}
},
"description": "Metrics computed"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Get AI Config metrics by variation",
"tags": [
"AI Configs"
]
}
},
"/api/v2/projects/{projectKey}/ai-configs/model-configs/restricted": {
"delete": {
"description": "Remove AI models, by key, from the restricted list.",
"operationId": "deleteRestrictedModels",
"parameters": [
{
"example": "default",
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RestrictedModelsRequest"
}
}
},
"description": "List of AI model keys to remove from the restricted list",
"required": true
},
"responses": {
"204": {
"description": "No content"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Remove AI models from the restricted list",
"tags": [
"AI Configs"
]
},
"post": {
"description": "Add AI models, by key, to the restricted list. Keys are included in the response from the [List AI model configs](https://launchdarkly.com/docs/api/ai-configs/list-model-configs) endpoint.",
"operationId": "postRestrictedModels",
"parameters": [
{
"example": "default",
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RestrictedModelsRequest"
}
}
},
"description": "List of AI model keys to add to the restricted list.",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RestrictedModelsResponse"
}
}
},
"description": "Successful response"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Add AI models to the restricted list",
"tags": [
"AI Configs"
]
}
},
"/api/v2/projects/{projectKey}/ai-configs/model-configs": {
"get": {
"description": "Get all AI model configs for a project.",
"operationId": "listModelConfigs",
"parameters": [
{
"example": "default",
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"description": "Whether to return only restricted models",
"explode": true,
"in": "query",
"name": "restricted",
"required": false,
"schema": {
"type": "boolean"
},
"style": "form"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/ModelConfig"
},
"type": "array"
}
}
},
"description": "Successful response"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "List AI model configs",
"tags": [
"AI Configs"
]
},
"post": {
"description": "Create an AI model config. You can use this in any variation for any AI Config in your project.",
"operationId": "postModelConfig",
"parameters": [
{
"example": "default",
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ModelConfigPost"
}
}
},
"description": "AI model config object to create",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ModelConfig"
}
}
},
"description": "Successful response"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Create an AI model config",
"tags": [
"AI Configs"
]
}
},
"/api/v2/projects/{projectKey}/ai-configs/model-configs/{modelConfigKey}": {
"delete": {
"description": "Delete an AI model config.",
"operationId": "deleteModelConfig",
"parameters": [
{
"example": "default",
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "modelConfigKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"responses": {
"204": {
"description": "No content"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Delete an AI model config",
"tags": [
"AI Configs"
]
},
"get": {
"description": "Get an AI model config by key.",
"operationId": "getModelConfig",
"parameters": [
{
"example": "default",
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"example": "default",
"explode": false,
"in": "path",
"name": "modelConfigKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ModelConfig"
}
}
},
"description": "Successful response"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Get AI model config",
"tags": [
"AI Configs"
]
}
},
"/api/v2/projects/{projectKey}/ai-tools": {
"get": {
"description": "Get a list of all AI tools in the given project.",
"operationId": "listAITools",
"parameters": [
{
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"description": "A sort to apply to the list of AI Configs.",
"explode": true,
"in": "query",
"name": "sort",
"required": false,
"schema": {
"type": "string"
},
"style": "form"
},
{
"description": "The number of AI Configs to return.",
"explode": true,
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "integer"
},
"style": "form"
},
{
"description": "Where to start in the list. Use this with pagination. For example, an offset of 10 skips the first ten items and then returns the next items in the list, up to the query `limit`.",
"explode": true,
"in": "query",
"name": "offset",
"required": false,
"schema": {
"type": "integer"
},
"style": "form"
},
{
"description": "A filter to apply to the list of AI Configs.",
"explode": true,
"in": "query",
"name": "filter",
"required": false,
"schema": {
"type": "string"
},
"style": "form"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AITools"
}
}
},
"description": "Successful response"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "List AI tools",
"tags": [
"AI Configs"
]
},
"post": {
"description": "Create an AI tool",
"operationId": "postAITool",
"parameters": [
{
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AIToolPost"
}
}
},
"description": "AI tool object to create",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AITool"
}
}
},
"description": "AI tool created"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Create an AI tool",
"tags": [
"AI Configs"
]
}
},
"/api/v2/projects/{projectKey}/ai-tools/{toolKey}/versions": {
"get": {
"description": "Get a list of all versions of an AI tool in the given project.",
"operationId": "listAIToolVersions",
"parameters": [
{
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "toolKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"description": "A sort to apply to the list of AI Configs.",
"explode": true,
"in": "query",
"name": "sort",
"required": false,
"schema": {
"type": "string"
},
"style": "form"
},
{
"description": "The number of AI Configs to return.",
"explode": true,
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "integer"
},
"style": "form"
},
{
"description": "Where to start in the list. Use this with pagination. For example, an offset of 10 skips the first ten items and then returns the next items in the list, up to the query `limit`.",
"explode": true,
"in": "query",
"name": "offset",
"required": false,
"schema": {
"type": "integer"
},
"style": "form"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AITools"
}
}
},
"description": "Successful response"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "List AI tool versions",
"tags": [
"AI Configs"
]
}
},
"/api/v2/projects/{projectKey}/ai-tools/{toolKey}": {
"delete": {
"description": "Delete an existing AI tool.",
"operationId": "deleteAITool",
"parameters": [
{
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "toolKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"responses": {
"204": {
"description": "No content"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Delete AI tool",
"tags": [
"AI Configs"
]
},
"get": {
"description": "Retrieve a specific AI tool by its key.",
"operationId": "getAITool",
"parameters": [
{
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "toolKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AITool"
}
}
},
"description": "AI tool found"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Get AI tool",
"tags": [
"AI Configs"
]
},
"patch": {
"description": "Edit an existing AI tool.",
"operationId": "patchAITool",
"parameters": [
{
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "toolKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AIToolPatch"
}
}
},
"description": "AI tool object to update"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AITool"
}
}
},
"description": "AI tool updated"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Update AI tool",
"tags": [
"AI Configs"
]
}
},
"/api/v2/projects/{projectKey}/agent-graphs": {
"get": {
"description": "Get a list of all agent graphs in the given project. Returns metadata only, without edge data.",
"operationId": "listAgentGraphs",
"parameters": [
{
"description": "Version of the endpoint.",
"explode": false,
"in": "header",
"name": "LD-API-Version",
"required": true,
"schema": {
"enum": [
"beta"
],
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"description": "The number of AI Configs to return.",
"explode": true,
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "integer"
},
"style": "form"
},
{
"description": "Where to start in the list. Use this with pagination. For example, an offset of 10 skips the first ten items and then returns the next items in the list, up to the query `limit`.",
"explode": true,
"in": "query",
"name": "offset",
"required": false,
"schema": {
"type": "integer"
},
"style": "form"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AgentGraphs"
}
}
},
"description": "Successful response"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "List agent graphs",
"tags": [
"AI Configs"
]
},
"post": {
"description": "Create a new agent graph within the given project.",
"operationId": "postAgentGraph",
"parameters": [
{
"description": "Version of the endpoint.",
"explode": false,
"in": "header",
"name": "LD-API-Version",
"required": true,
"schema": {
"enum": [
"beta"
],
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AgentGraphPost"
}
}
},
"description": "Agent graph object to create",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AgentGraph"
}
}
},
"description": "Agent graph created"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"413": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Payload too large"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Create new agent graph",
"tags": [
"AI Configs"
]
}
},
"/api/v2/projects/{projectKey}/agent-graphs/{graphKey}": {
"delete": {
"description": "Delete an existing agent graph and all of its edges.",
"operationId": "deleteAgentGraph",
"parameters": [
{
"description": "Version of the endpoint.",
"explode": false,
"in": "header",
"name": "LD-API-Version",
"required": true,
"schema": {
"enum": [
"beta"
],
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "graphKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"responses": {
"204": {
"description": "No content"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Delete agent graph",
"tags": [
"AI Configs"
]
},
"get": {
"description": "Retrieve a specific agent graph by its key, including its edges.",
"operationId": "getAgentGraph",
"parameters": [
{
"description": "Version of the endpoint.",
"explode": false,
"in": "header",
"name": "LD-API-Version",
"required": true,
"schema": {
"enum": [
"beta"
],
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "graphKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AgentGraph"
}
}
},
"description": "Agent graph found"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Get agent graph",
"tags": [
"AI Configs"
]
},
"patch": {
"description": "Edit an existing agent graph.\n\nThe request body must be a JSON object of the fields to update. The values you include replace the existing values for the fields.\n\nIf the update includes `rootConfigKey` or `edges`, both must be present and will be treated as full replacements.\n",
"operationId": "patchAgentGraph",
"parameters": [
{
"description": "Version of the endpoint.",
"explode": false,
"in": "header",
"name": "LD-API-Version",
"required": true,
"schema": {
"enum": [
"beta"
],
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "graphKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AgentGraphPatch"
}
}
},
"description": "Agent graph object to update"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AgentGraph"
}
}
},
"description": "Agent graph updated"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Update agent graph",
"tags": [
"AI Configs"
]
}
},
"/api/v2/announcements": {
"get": {
"description": "Get announcements",
"operationId": "getAnnouncementsPublic",
"parameters": [
{
"description": "Filter announcements by status.",
"example": "active",
"explode": true,
"in": "query",
"name": "status",
"required": false,
"schema": {
"enum": [
"active",
"inactive",
"scheduled"
],
"type": "string",
"x-enumNames": [
"Active",
"Inactive",
"Scheduled"
]
},
"style": "form"
},
{
"description": "The number of announcements to return.",
"explode": true,
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "integer"
},
"style": "form"
},
{
"description": "Where to start in the list. Use this with pagination. For example, an offset of 10 skips the first ten items and then returns the next items in the list, up to the query `limit`.",
"explode": true,
"in": "query",
"name": "offset",
"required": false,
"schema": {
"type": "integer"
},
"style": "form"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/getAnnouncementsPublic_200_response"
}
}
},
"description": "Announcement response"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"429": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Rate limit exceeded"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Get announcements",
"tags": [
"Announcements"
]
},
"post": {
"description": "Create an announcement",
"operationId": "createAnnouncementPublic",
"requestBody": {
"$ref": "#/components/requestBodies/CreateAnnouncementBody"
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AnnouncementResponse"
}
}
},
"description": "Created announcement"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"409": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Conflict"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Create an announcement",
"tags": [
"Announcements"
]
}
},
"/api/v2/announcements/{announcementId}": {
"delete": {
"description": "Delete an announcement",
"operationId": "deleteAnnouncementPublic",
"parameters": [
{
"example": 1234567890,
"explode": false,
"in": "path",
"name": "announcementId",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"responses": {
"204": {
"description": "No content"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Delete an announcement",
"tags": [
"Announcements"
]
},
"patch": {
"description": "Update an announcement",
"operationId": "updateAnnouncementPublic",
"parameters": [
{
"example": 1234567890,
"explode": false,
"in": "path",
"name": "announcementId",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"requestBody": {
"$ref": "#/components/requestBodies/UpdateAnnouncementBody"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AnnouncementResponse"
}
}
},
"description": "Updated announcement"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"409": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Conflict"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Update an announcement",
"tags": [
"Announcements"
]
}
},
"/api/v2/approval-requests/projects/{projectKey}/settings": {
"get": {
"description": "Get the approval request settings for the given project, optionally filtered by environment and resource kind.",
"operationId": "getApprovalRequestSettings",
"parameters": [
{
"description": "Version of the endpoint.",
"explode": false,
"in": "header",
"name": "LD-API-Version",
"required": true,
"schema": {
"enum": [
"beta"
],
"type": "string"
},
"style": "simple"
},
{
"example": "default",
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"description": "An environment key filter to apply to the approval request settings.",
"explode": true,
"in": "query",
"name": "environmentKey",
"required": false,
"schema": {
"type": "string"
},
"style": "form"
},
{
"description": "A resource kind filter to apply to the approval request settings.",
"explode": true,
"in": "query",
"name": "resourceKind",
"required": false,
"schema": {
"type": "string"
},
"style": "form"
},
{
"description": "A comma-separated list of fields to expand in the response. Options include 'default' and 'strict'.",
"example": "default,strict",
"explode": true,
"in": "query",
"name": "expand",
"required": false,
"schema": {
"type": "string"
},
"style": "form"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApprovalRequestSettings"
}
}
},
"description": "Successful response"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Get approval request settings",
"tags": [
"Approvals (beta)"
]
},
"patch": {
"description": "Perform a partial update to approval request settings",
"operationId": "patchApprovalRequestSettings",
"parameters": [
{
"description": "Version of the endpoint.",
"explode": false,
"in": "header",
"name": "LD-API-Version",
"required": true,
"schema": {
"enum": [
"beta"
],
"type": "string"
},
"style": "simple"
},
{
"example": "default",
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApprovalRequestSettingsPatch"
}
}
},
"description": "Approval request settings to update"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApprovalRequestSettings"
}
}
},
"description": "Successful response"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Update approval request settings",
"tags": [
"Approvals (beta)"
]
}
},
"/api/v2/projects/{projectKey}/views": {
"get": {
"description": "Get a list of all views in the given project.",
"operationId": "getViews",
"parameters": [
{
"description": "Version of the endpoint.",
"explode": false,
"in": "header",
"name": "LD-API-Version",
"required": true,
"schema": {
"enum": [
"beta"
],
"type": "string"
},
"style": "simple"
},
{
"example": "default",
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"description": "A sort to apply to the list of views.",
"explode": true,
"in": "query",
"name": "sort",
"required": false,
"schema": {
"enum": [
"key",
"name",
"updatedAt"
],
"type": "string"
},
"style": "form"
},
{
"description": "The number of views to return.",
"explode": true,
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "integer"
},
"style": "form"
},
{
"description": "Where to start in the list. Use this with pagination. For example, an offset of 10 skips the first ten items and then returns the next items in the list, up to the query `limit`.",
"explode": true,
"in": "query",
"name": "offset",
"required": false,
"schema": {
"type": "integer"
},
"style": "form"
},
{
"description": "A filter to apply to the list of views. Supports the following fields and operators: `name` (equals, notEquals, startsWith, contains, anyOf), `key` (equals, notEquals, startsWith, contains, anyOf), `tag` (equals, anyOf), `maintainerId` (equals, anyOf), `isPayloadView` (equals).",
"explode": true,
"in": "query",
"name": "filter",
"required": false,
"schema": {
"type": "string"
},
"style": "form"
},
{
"description": "A comma-separated list of fields to expand.",
"explode": false,
"in": "query",
"name": "expand",
"required": false,
"schema": {
"items": {
"enum": [
"flagsSummary",
"segmentsSummary",
"metricsSummary",
"aiConfigsSummary",
"resourceSummary"
],
"type": "string"
},
"type": "array"
},
"style": "form"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Views"
}
}
},
"description": "Successful response"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "List views",
"tags": [
"Views (beta)"
]
},
"post": {
"description": "Create a new view in the given project.",
"operationId": "createView",
"parameters": [
{
"description": "Version of the endpoint.",
"explode": false,
"in": "header",
"name": "LD-API-Version",
"required": true,
"schema": {
"enum": [
"beta"
],
"type": "string"
},
"style": "simple"
},
{
"example": "default",
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ViewPost"
}
}
},
"description": "View object to create",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/View"
}
}
},
"description": "Successful response"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Create view",
"tags": [
"Views (beta)"
]
}
},
"/api/v2/projects/{projectKey}/views/{viewKey}": {
"delete": {
"description": "Delete a specific view by its key.",
"operationId": "deleteView",
"parameters": [
{
"description": "Version of the endpoint.",
"explode": false,
"in": "header",
"name": "LD-API-Version",
"required": true,
"schema": {
"enum": [
"beta"
],
"type": "string"
},
"style": "simple"
},
{
"example": "default",
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"example": "my-view",
"explode": false,
"in": "path",
"name": "viewKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"responses": {
"204": {
"description": "No content"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Delete view",
"tags": [
"Views (beta)"
]
},
"get": {
"description": "Retrieve a specific view by its key.",
"operationId": "getView",
"parameters": [
{
"description": "Version of the endpoint.",
"explode": false,
"in": "header",
"name": "LD-API-Version",
"required": true,
"schema": {
"enum": [
"beta"
],
"type": "string"
},
"style": "simple"
},
{
"example": "default",
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"example": "my-view",
"explode": false,
"in": "path",
"name": "viewKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"description": "A sort to apply to the list of views.",
"explode": true,
"in": "query",
"name": "sort",
"required": false,
"schema": {
"enum": [
"key",
"name",
"updatedAt"
],
"type": "string"
},
"style": "form"
},
{
"description": "The number of views to return.",
"explode": true,
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "integer"
},
"style": "form"
},
{
"description": "Where to start in the list. Use this with pagination. For example, an offset of 10 skips the first ten items and then returns the next items in the list, up to the query `limit`.",
"explode": true,
"in": "query",
"name": "offset",
"required": false,
"schema": {
"type": "integer"
},
"style": "form"
},
{
"description": "A filter to apply to the list of views. Supports the following fields and operators: `name` (equals, notEquals, startsWith, contains, anyOf), `key` (equals, notEquals, startsWith, contains, anyOf), `tag` (equals, anyOf), `maintainerId` (equals, anyOf), `isPayloadView` (equals).",
"explode": true,
"in": "query",
"name": "filter",
"required": false,
"schema": {
"type": "string"
},
"style": "form"
},
{
"description": "A comma-separated list of fields to expand.",
"explode": true,
"in": "query",
"name": "expand",
"required": false,
"schema": {
"items": {
"enum": [
"allFlags",
"allSegments",
"allMetrics",
"allAIConfigs",
"allResources",
"maintainer",
"flagsSummary",
"segmentsSummary",
"metricsSummary",
"aiConfigsSummary",
"resourceSummary"
],
"type": "string"
},
"type": "array"
},
"style": "form"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/View"
}
}
},
"description": "Successful response"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Get view",
"tags": [
"Views (beta)"
]
},
"patch": {
"description": "Edit an existing view.\n\nThe request body must be a JSON object of the fields to update. The values you include replace the existing values for the fields.\n\nHere's an example:\n ```\n {\n \"description\": \"Example updated description\",\n \"tags\": [\"new-tag\"]\n }\n ```\n",
"operationId": "updateView",
"parameters": [
{
"description": "Version of the endpoint.",
"explode": false,
"in": "header",
"name": "LD-API-Version",
"required": true,
"schema": {
"enum": [
"beta"
],
"type": "string"
},
"style": "simple"
},
{
"example": "default",
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"example": "my-view",
"explode": false,
"in": "path",
"name": "viewKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ViewPatch"
}
}
},
"description": "A JSON representation of the view including only the fields to update.",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/View"
}
}
},
"description": "Successful response"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Update view",
"tags": [
"Views (beta)"
]
}
},
"/api/v2/projects/{projectKey}/views/{viewKey}/link/{resourceType}": {
"delete": {
"description": "Unlink one or multiple resources from a view:\n- Unlink flags using flag keys\n- Unlink segments using segment IDs\n- Unlink AI Configs using AI Config keys\n- Unlink metrics using metric keys\n",
"operationId": "unlinkResource",
"parameters": [
{
"description": "Version of the endpoint.",
"explode": false,
"in": "header",
"name": "LD-API-Version",
"required": true,
"schema": {
"enum": [
"beta"
],
"type": "string"
},
"style": "simple"
},
{
"example": "default",
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"example": "my-view",
"explode": false,
"in": "path",
"name": "viewKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"example": "flags",
"explode": false,
"in": "path",
"name": "resourceType",
"required": true,
"schema": {
"enum": [
"flags",
"segments",
"aiConfigs",
"metrics"
],
"type": "string"
},
"style": "simple"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ViewLinkRequest"
}
}
},
"description": "The resource to link to the view. Flags are identified by key. Segments are identified by segment ID.",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UnlinkResourceSuccessResponse"
}
}
},
"description": "Successful response with unlink details"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Unlink resource",
"tags": [
"Views (beta)"
]
},
"post": {
"description": "Link one or multiple resources to a view by keys, filters, or both:\n- Link flags using flag keys or filters (maintainerId, maintainerTeamKey, tags, state, query)\n- Link AI Configs using AI Config keys\n- Link metrics using metric keys\n- Link segments using segment IDs or filters (tags, query, unbounded)\n\nWhen both keys and filters are provided, resources matching either condition are linked (union).\n",
"operationId": "linkResource",
"parameters": [
{
"description": "Version of the endpoint.",
"explode": false,
"in": "header",
"name": "LD-API-Version",
"required": true,
"schema": {
"enum": [
"beta"
],
"type": "string"
},
"style": "simple"
},
{
"example": "default",
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"example": "my-view",
"explode": false,
"in": "path",
"name": "viewKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"example": "flags",
"explode": false,
"in": "path",
"name": "resourceType",
"required": true,
"schema": {
"enum": [
"flags",
"segments",
"aiConfigs",
"metrics"
],
"type": "string"
},
"style": "simple"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ViewLinkRequest"
}
}
},
"description": "Resources to link to the view. You can provide explicit keys/IDs, filters, or both.\n- Flags: identified by key or filtered by maintainerId, maintainerTeamKey, tags, state, query\n- Segments: identified by segment ID or filtered by tags, query, unbounded\n- AI configs and metrics: identified by key\n",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LinkResourceSuccessResponse"
}
}
},
"description": "Successful response"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Link resource",
"tags": [
"Views (beta)"
]
}
},
"/api/v2/projects/{projectKey}/views/{viewKey}/linked/{resourceType}": {
"get": {
"description": "Get a list of all linked resources for a given view.",
"operationId": "getLinkedResources",
"parameters": [
{
"description": "Version of the endpoint.",
"explode": false,
"in": "header",
"name": "LD-API-Version",
"required": true,
"schema": {
"enum": [
"beta"
],
"type": "string"
},
"style": "simple"
},
{
"example": "default",
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"example": "my-view",
"explode": false,
"in": "path",
"name": "viewKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"example": "flags",
"explode": false,
"in": "path",
"name": "resourceType",
"required": true,
"schema": {
"enum": [
"flags",
"segments",
"aiConfigs",
"metrics"
],
"type": "string"
},
"style": "simple"
},
{
"description": "The number of views to return.",
"explode": true,
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "integer"
},
"style": "form"
},
{
"description": "Where to start in the list. Use this with pagination. For example, an offset of 10 skips the first ten items and then returns the next items in the list, up to the query `limit`.",
"explode": true,
"in": "query",
"name": "offset",
"required": false,
"schema": {
"type": "integer"
},
"style": "form"
},
{
"description": "Field to sort by. Default field is `linkedAt`, default order is ascending.",
"explode": true,
"in": "query",
"name": "sort",
"required": false,
"schema": {
"default": "linkedAt",
"enum": [
"linkedAt",
"name"
],
"type": "string"
},
"style": "form"
},
{
"description": "Case-insensitive search query for linked resources. Matches resource key and, when expanded, resource name.",
"explode": true,
"in": "query",
"name": "query",
"required": false,
"schema": {
"type": "string"
},
"style": "form"
},
{
"description": "Optional resource filter expression for linked resources.\n- Supported for `flags` and `segments` resource types.\n- Uses the same syntax as link/unlink and list endpoints.\n- For `segments`, `environmentId` is required when `filter` is provided.\n- Rejected for `aiConfigs` and `metrics`.\n",
"explode": true,
"in": "query",
"name": "filter",
"required": false,
"schema": {
"type": "string"
},
"style": "form"
},
{
"description": "Environment ID used for segment filter resolution. Required when `resourceType=segments` and `filter` is provided.",
"explode": true,
"in": "query",
"name": "environmentId",
"required": false,
"schema": {
"type": "string"
},
"style": "form"
},
{
"description": "A comma-separated list of fields to expand.",
"explode": false,
"in": "query",
"name": "expand",
"required": false,
"schema": {
"items": {
"enum": [
"maintainer",
"resourceDetails"
],
"type": "string"
},
"type": "array"
},
"style": "form"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ViewLinkedResources"
}
}
},
"description": "Successful response"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Get linked resources",
"tags": [
"Views (beta)"
]
}
},
"/api/v2/projects/{projectKey}/view-associations/{resourceType}/{resourceKey}": {
"get": {
"description": "Get a list of all linked views for a resource. Flags, AI configs and metrics are identified by key. Segments are identified by segment ID.",
"operationId": "getLinkedViews",
"parameters": [
{
"description": "Version of the endpoint.",
"explode": false,
"in": "header",
"name": "LD-API-Version",
"required": true,
"schema": {
"enum": [
"beta"
],
"type": "string"
},
"style": "simple"
},
{
"example": "default",
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"example": "flags",
"explode": false,
"in": "path",
"name": "resourceType",
"required": true,
"schema": {
"enum": [
"flags",
"segments",
"aiConfigs",
"metrics"
],
"type": "string"
},
"style": "simple"
},
{
"example": "my-flag",
"explode": false,
"in": "path",
"name": "resourceKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"description": "Environment ID. Required when resourceType is 'segments'",
"example": "6890ff25c3e3830ba1a352e4",
"explode": true,
"in": "query",
"name": "environmentId",
"required": false,
"schema": {
"type": "string"
},
"style": "form"
},
{
"description": "The number of views to return.",
"explode": true,
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "integer"
},
"style": "form"
},
{
"description": "Where to start in the list. Use this with pagination. For example, an offset of 10 skips the first ten items and then returns the next items in the list, up to the query `limit`.",
"explode": true,
"in": "query",
"name": "offset",
"required": false,
"schema": {
"type": "integer"
},
"style": "form"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Views"
}
}
},
"description": "Successful response"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Get linked views for a given resource",
"tags": [
"Views (beta)"
]
}
},
"/api/v2/projects/{projectKey}/release-policies": {
"get": {
"description": "Get a list of release policies for the specified project with optional filtering.",
"operationId": "GetReleasePolicies",
"parameters": [
{
"description": "Version of the endpoint.",
"explode": false,
"in": "header",
"name": "LD-API-Version",
"required": true,
"schema": {
"enum": [
"beta"
],
"type": "string"
},
"style": "simple"
},
{
"description": "The project key",
"example": "default",
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"description": "When true, exclude the default release policy from the response. When false or omitted, include the default policy if an environment filter is present.",
"example": false,
"explode": true,
"in": "query",
"name": "excludeDefault",
"required": false,
"schema": {
"default": false,
"type": "boolean"
},
"style": "form"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReleasePoliciesResponse"
}
}
},
"description": "List of release policies"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"401": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Invalid access token"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "List release policies",
"tags": [
"Release policies (beta)"
]
},
"post": {
"description": "Create a new release policy for the specified project.",
"operationId": "PostReleasePolicy",
"parameters": [
{
"description": "Version of the endpoint.",
"explode": false,
"in": "header",
"name": "LD-API-Version",
"required": true,
"schema": {
"enum": [
"beta"
],
"type": "string"
},
"style": "simple"
},
{
"description": "The project key",
"example": "default",
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PostReleasePolicyRequest"
}
}
},
"description": "Release policy to create",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReleasePolicy"
}
}
},
"description": "Release policy created successfully"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"401": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Invalid access token"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"409": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Conflict"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Create a release policy",
"tags": [
"Release policies (beta)"
]
}
},
"/api/v2/projects/{projectKey}/release-policies/order": {
"post": {
"description": "Update the order of existing release policies for the specified project.",
"operationId": "PostReleasePoliciesOrder",
"parameters": [
{
"description": "Version of the endpoint.",
"explode": false,
"in": "header",
"name": "LD-API-Version",
"required": true,
"schema": {
"enum": [
"beta"
],
"type": "string"
},
"style": "simple"
},
{
"description": "The project key",
"example": "default",
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"description": "Ordered list of release policy keys",
"items": {
"type": "string"
},
"type": "array"
}
}
},
"description": "Array of release policy keys in the desired rank order (scoped policies only). These keys must include _all_ of the scoped release policies for the project.",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/ReleasePolicy"
},
"type": "array"
}
}
},
"description": "Release policies updated successfully"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"401": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Invalid access token"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Update the order of existing release policies",
"tags": [
"Release policies (beta)"
]
}
},
"/api/v2/projects/{projectKey}/release-policies/{policyKey}": {
"delete": {
"description": "Delete an existing release policy for the specified project.",
"operationId": "DeleteReleasePolicy",
"parameters": [
{
"description": "Version of the endpoint.",
"explode": false,
"in": "header",
"name": "LD-API-Version",
"required": true,
"schema": {
"enum": [
"beta"
],
"type": "string"
},
"style": "simple"
},
{
"description": "The project key",
"example": "default",
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"description": "The human-readable key of the release policy",
"example": "production-release",
"explode": false,
"in": "path",
"name": "policyKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"responses": {
"204": {
"description": "Release policy deleted successfully"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"401": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Invalid access token"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Delete a release policy",
"tags": [
"Release policies (beta)"
]
},
"get": {
"description": "Retrieve a single release policy by its key for the specified project.",
"operationId": "GetReleasePolicy",
"parameters": [
{
"description": "Version of the endpoint.",
"explode": false,
"in": "header",
"name": "LD-API-Version",
"required": true,
"schema": {
"enum": [
"beta"
],
"type": "string"
},
"style": "simple"
},
{
"description": "The project key",
"example": "default",
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"description": "The release policy key",
"example": "production-release",
"explode": false,
"in": "path",
"name": "policyKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReleasePolicy"
}
}
},
"description": "Release policy found"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"401": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Invalid access token"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Get a release policy by key",
"tags": [
"Release policies (beta)"
]
},
"put": {
"description": "Update an existing release policy for the specified project.",
"operationId": "PutReleasePolicy",
"parameters": [
{
"description": "Version of the endpoint.",
"explode": false,
"in": "header",
"name": "LD-API-Version",
"required": true,
"schema": {
"enum": [
"beta"
],
"type": "string"
},
"style": "simple"
},
{
"description": "The project key",
"example": "default",
"explode": false,
"in": "path",
"name": "projectKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"description": "The human-readable key of the release policy",
"example": "production-release",
"explode": false,
"in": "path",
"name": "policyKey",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PutReleasePolicyRequest"
}
}
},
"description": "Release policy data to update",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReleasePolicy"
}
}
},
"description": "Release policy updated successfully"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad request"
},
"401": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Invalid access token"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Internal server error"
}
},
"summary": "Update a release policy",
"tags": [
"Release policies (beta)"
]
}
},
"/api/v2/engineering-insights/charts/deployments/frequency": {
"get": {
"responses": {
"200": {
"description": "Chart response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InsightsChart"
}
}
}
},
"400": {
"description": "Invalid request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationFailedErrorRep"
}
}
}
},
"401": {
"description": "Invalid access token",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UnauthorizedErrorRep"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ForbiddenErrorRep"
}
}
}
},
"404": {
"description": "Invalid resource identifier",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundErrorRep"
}
}
}
},
"429": {
"description": "Rate limited",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RateLimitedErrorRep"
}
}
}
}
},
"tags": [
"Insights charts (beta)"
],
"summary": "Get deployment frequency chart data",
"description": "Get deployment frequency chart data. Engineering insights displays deployment frequency data in the [deployment frequency metric view](https://launchdarkly.com/docs/home/observability/deployments).\n\n### Expanding the chart response\n\nLaunchDarkly supports expanding the chart response to include additional fields.\n\nTo expand the response, append the `expand` query parameter and include the following:\n\n* `metrics` includes details on the metrics related to deployment frequency\n\nFor example, use `?expand=metrics` to include the `metrics` field in the response. By default, this field is **not** included in the response.\n",
"parameters": [
{
"name": "projectKey",
"in": "query",
"description": "The project key",
"schema": {
"type": "string",
"format": "string",
"description": "The project key"
}
},
{
"name": "environmentKey",
"in": "query",
"description": "The environment key",
"schema": {
"type": "string",
"format": "string",
"description": "The environment key"
}
},
{
"name": "applicationKey",
"in": "query",
"description": "Comma separated list of application keys",
"schema": {
"type": "string",
"format": "string",
"description": "Comma separated list of application keys"
}
},
{
"name": "from",
"in": "query",
"description": "Unix timestamp in milliseconds. Default value is 7 days ago.",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "to",
"in": "query",
"description": "Unix timestamp in milliseconds. Default value is now.",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "bucketType",
"in": "query",
"description": "Specify type of bucket. Options: `rolling`, `hour`, `day`. Default: `rolling`.",
"schema": {
"type": "string",
"format": "string",
"description": "Specify type of bucket. Options: `rolling`, `hour`, `day`. Default: `rolling`."
}
},
{
"name": "bucketMs",
"in": "query",
"description": "Duration of intervals for x-axis in milliseconds. Default value is one day (`86400000` milliseconds).",
"schema": {
"type": "integer",
"format": "int64",
"description": "Duration of intervals for x-axis in milliseconds. Default value is one day (`86400000` milliseconds)."
}
},
{
"name": "groupBy",
"in": "query",
"description": "Options: `application`, `kind`",
"schema": {
"type": "string",
"format": "string",
"description": "Options: `application`, `kind`"
}
},
{
"name": "expand",
"in": "query",
"description": "Options: `metrics`",
"schema": {
"type": "string",
"format": "string",
"description": "Options: `metrics`"
}
}
],
"operationId": "getDeploymentFrequencyChart"
}
},
"/api/v2/engineering-insights/charts/flags/stale": {
"get": {
"responses": {
"200": {
"description": "Chart response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InsightsChart"
}
}
}
},
"400": {
"description": "Invalid request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationFailedErrorRep"
}
}
}
},
"401": {
"description": "Invalid access token",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UnauthorizedErrorRep"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ForbiddenErrorRep"
}
}
}
},
"404": {
"description": "Invalid resource identifier",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundErrorRep"
}
}
}
},
"429": {
"description": "Rate limited",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RateLimitedErrorRep"
}
}
}
}
},
"tags": [
"Insights charts (beta)"
],
"summary": "Get stale flags chart data",
"description": "Get stale flags chart data. Engineering insights displays stale flags data in the [flag health metric view](https://launchdarkly.com/docs/home/observability/flag-health).\n\n### Expanding the chart response\n\nLaunchDarkly supports expanding the chart response to include additional fields.\n\nTo expand the response, append the `expand` query parameter and include the following:\n\n* `metrics` includes details on the metrics related to stale flags\n\nFor example, use `?expand=metrics` to include the `metrics` field in the response. By default, this field is **not** included in the response.\n",
"parameters": [
{
"name": "projectKey",
"in": "query",
"description": "The project key",
"required": true,
"schema": {
"type": "string",
"format": "string",
"description": "The project key"
}
},
{
"name": "environmentKey",
"in": "query",
"description": "The environment key",
"required": true,
"schema": {
"type": "string",
"format": "string",
"description": "The environment key"
}
},
{
"name": "applicationKey",
"in": "query",
"description": "Comma separated list of application keys",
"schema": {
"type": "string",
"format": "string",
"description": "Comma separated list of application keys"
}
},
{
"name": "groupBy",
"in": "query",
"description": "Property to group results by. Options: `maintainer`",
"schema": {
"type": "string",
"format": "string",
"description": "Property to group results by. Options: `maintainer`"
}
},
{
"name": "maintainerId",
"in": "query",
"description": "Comma-separated list of individual maintainers to filter results.",
"schema": {
"type": "string",
"format": "string",
"description": "Comma-separated list of individual maintainers to filter results."
}
},
{
"name": "maintainerTeamKey",
"in": "query",
"description": "Comma-separated list of team maintainer keys to filter results.",
"schema": {
"type": "string",
"format": "string",
"description": "Comma-separated list of team maintainer keys to filter results."
}
},
{
"name": "expand",
"in": "query",
"description": "Options: `metrics`",
"schema": {
"type": "string",
"format": "string",
"description": "Options: `metrics`"
}
}
],
"operationId": "getStaleFlagsChart"
}
},
"/api/v2/engineering-insights/charts/flags/status": {
"get": {
"responses": {
"200": {
"description": "Chart response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InsightsChart"
}
}
}
},
"400": {
"description": "Invalid request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationFailedErrorRep"
}
}
}
},
"401": {
"description": "Invalid access token",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UnauthorizedErrorRep"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ForbiddenErrorRep"
}
}
}
},
"404": {
"description": "Invalid resource identifier",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundErrorRep"
}
}
}
},
"429": {
"description": "Rate limited",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RateLimitedErrorRep"
}
}
}
}
},
"tags": [
"Insights charts (beta)"
],
"summary": "Get flag status chart data",
"description": "Get flag status chart data. To learn more, read [Flag statuses](https://launchdarkly.com/docs/home/observability/flag-health#flag-statuses).",
"parameters": [
{
"name": "projectKey",
"in": "query",
"description": "The project key",
"required": true,
"schema": {
"type": "string",
"format": "string",
"description": "The project key"
}
},
{
"name": "environmentKey",
"in": "query",
"description": "The environment key",
"required": true,
"schema": {
"type": "string",
"format": "string",
"description": "The environment key"
}
},
{
"name": "applicationKey",
"in": "query",
"description": "Comma separated list of application keys",
"schema": {
"type": "string",
"format": "string",
"description": "Comma separated list of application keys"
}
}
],
"operationId": "getFlagStatusChart"
}
},
"/api/v2/engineering-insights/charts/lead-time": {
"get": {
"responses": {
"200": {
"description": "Chart response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InsightsChart"
}
}
}
},
"400": {
"description": "Invalid request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationFailedErrorRep"
}
}
}
},
"401": {
"description": "Invalid access token",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UnauthorizedErrorRep"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ForbiddenErrorRep"
}
}
}
},
"404": {
"description": "Invalid resource identifier",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundErrorRep"
}
}
}
},
"429": {
"description": "Rate limited",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RateLimitedErrorRep"
}
}
}
}
},
"tags": [
"Insights charts (beta)"
],
"summary": "Get lead time chart data",
"description": "Get lead time chart data. The engineering insights UI displays lead time data in the [lead time metric view](https://launchdarkly.com/docs/home/observability/lead-time).",
"parameters": [
{
"name": "projectKey",
"in": "query",
"description": "The project key",
"required": true,
"schema": {
"type": "string",
"format": "string",
"description": "The project key"
}
},
{
"name": "environmentKey",
"in": "query",
"description": "The environment key",
"schema": {
"type": "string",
"format": "string",
"description": "The environment key"
}
},
{
"name": "applicationKey",
"in": "query",
"description": "Comma separated list of application keys",
"schema": {
"type": "string",
"format": "string",
"description": "Comma separated list of application keys"
}
},
{
"name": "from",
"in": "query",
"description": "Unix timestamp in milliseconds. Default value is 7 days ago.",
"schema": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp in milliseconds. Default value is 7 days ago."
}
},
{
"name": "to",
"in": "query",
"description": "Unix timestamp in milliseconds. Default value is now.",
"schema": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp in milliseconds. Default value is now."
}
},
{
"name": "bucketType",
"in": "query",
"description": "Specify type of bucket. Options: `rolling`, `hour`, `day`. Default: `rolling`.",
"schema": {
"type": "string",
"format": "string",
"description": "Specify type of bucket. Options: `rolling`, `hour`, `day`. Default: `rolling`."
}
},
{
"name": "bucketMs",
"in": "query",
"description": "Duration of intervals for x-axis in milliseconds. Default value is one day (`86400000` milliseconds).",
"schema": {
"type": "integer",
"format": "int64",
"description": "Duration of intervals for x-axis in milliseconds. Default value is one day (`86400000` milliseconds)."
}
},
{
"name": "groupBy",
"in": "query",
"description": "Options: `application`, `stage`. Default: `stage`.",
"schema": {
"type": "string",
"format": "string",
"description": "Options: `application`, `stage`. Default: `stage`."
}
},
{
"name": "expand",
"in": "query",
"description": "Options: `metrics`, `percentiles`.",
"schema": {
"type": "string",
"format": "string",
"description": "Options: `metrics`, `percentiles`."
}
}
],
"operationId": "getLeadTimeChart"
}
},
"/api/v2/engineering-insights/charts/releases/frequency": {
"get": {
"responses": {
"200": {
"description": "Chart response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InsightsChart"
}
}
}
},
"400": {
"description": "Invalid request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationFailedErrorRep"
}
}
}
},
"401": {
"description": "Invalid access token",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UnauthorizedErrorRep"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ForbiddenErrorRep"
}
}
}
},
"404": {
"description": "Invalid resource identifier",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundErrorRep"
}
}
}
},
"429": {
"description": "Rate limited",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RateLimitedErrorRep"
}
}
}
}
},
"tags": [
"Insights charts (beta)"
],
"summary": "Get release frequency chart data",
"description": "Get release frequency chart data. Engineering insights displays release frequency data in the [release frequency metric view](https://launchdarkly.com/docs/home/observability/releases).",
"parameters": [
{
"name": "projectKey",
"in": "query",
"description": "The project key",
"required": true,
"schema": {
"type": "string",
"format": "string",
"description": "The project key"
}
},
{
"name": "environmentKey",
"in": "query",
"description": "The environment key",
"required": true,
"schema": {
"type": "string",
"format": "string",
"description": "The environment key"
}
},
{
"name": "applicationKey",
"in": "query",
"description": "Comma separated list of application keys",
"schema": {
"type": "string",
"format": "string",
"description": "Comma separated list of application keys"
}
},
{
"name": "hasExperiments",
"in": "query",
"description": "Filter events to those associated with an experiment (`true`) or without an experiment (`false`)",
"schema": {
"type": "boolean",
"format": "boolean",
"description": "Filter events to those associated with an experiment (`true`) or without an experiment (`false`)"
}
},
{
"name": "global",
"in": "query",
"description": "Filter to include or exclude global events. Default value is `include`. Options: `include`, `exclude`",
"schema": {
"type": "string",
"format": "string",
"description": "Filter to include or exclude global events. Default value is `include`. Options: `include`, `exclude`"
}
},
{
"name": "groupBy",
"in": "query",
"description": "Property to group results by. Options: `impact`",
"schema": {
"type": "string",
"format": "string",
"description": "Property to group results by. Options: `impact`"
}
},
{
"name": "from",
"in": "query",
"description": "Unix timestamp in milliseconds. Default value is 7 days ago.",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "to",
"in": "query",
"description": "Unix timestamp in milliseconds. Default value is now.",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "bucketType",
"in": "query",
"description": "Specify type of bucket. Options: `rolling`, `hour`, `day`. Default: `rolling`.",
"schema": {
"type": "string",
"format": "string",
"description": "Specify type of bucket. Options: `rolling`, `hour`, `day`. Default: `rolling`."
}
},
{
"name": "bucketMs",
"in": "query",
"description": "Duration of intervals for x-axis in milliseconds. Default value is one day (`86400000` milliseconds).",
"schema": {
"type": "integer",
"format": "int64",
"description": "Duration of intervals for x-axis in milliseconds. Default value is one day (`86400000` milliseconds)."
}
},
{
"name": "expand",
"in": "query",
"description": "Options: `metrics`",
"schema": {
"type": "string",
"format": "string",
"description": "Options: `metrics`"
}
}
],
"operationId": "getReleaseFrequencyChart"
}
},
"/api/v2/engineering-insights/deployment-events": {
"post": {
"responses": {
"201": {
"description": "Created"
},
"400": {
"description": "Invalid request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationFailedErrorRep"
}
}
}
},
"401": {
"description": "Invalid access token",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UnauthorizedErrorRep"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ForbiddenErrorRep"
}
}
}
},
"404": {
"description": "Invalid resource identifier",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundErrorRep"
}
}
}
},
"429": {
"description": "Rate limited",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RateLimitedErrorRep"
}
}
}
}
},
"tags": [
"Insights deployments (beta)"
],
"summary": "Create deployment event",
"description": "Create deployment event",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PostDeploymentEventInput"
}
}
},
"required": true
},
"operationId": "createDeploymentEvent"
}
},
"/api/v2/engineering-insights/deployments": {
"get": {
"responses": {
"200": {
"description": "Deployment collection response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeploymentCollectionRep"
}
}
}
},
"400": {
"description": "Invalid request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationFailedErrorRep"
}
}
}
},
"401": {
"description": "Invalid access token",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UnauthorizedErrorRep"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ForbiddenErrorRep"
}
}
}
},
"404": {
"description": "Invalid resource identifier",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundErrorRep"
}
}
}
},
"429": {
"description": "Rate limited",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RateLimitedErrorRep"
}
}
}
}
},
"tags": [
"Insights deployments (beta)"
],
"summary": "List deployments",
"description": "Get a list of deployments\n\n### Expanding the deployment collection response\n\nLaunchDarkly supports expanding the deployment collection response to include additional fields.\n\nTo expand the response, append the `expand` query parameter and include the following:\n\n* `pullRequests` includes details on all of the pull requests associated with each deployment\n* `flagReferences` includes details on all of the references to flags in each deployment\n\nFor example, use `?expand=pullRequests` to include the `pullRequests` field in the response. By default, this field is **not** included in the response.\n",
"parameters": [
{
"name": "projectKey",
"in": "query",
"description": "The project key",
"required": true,
"schema": {
"type": "string",
"format": "string",
"description": "The project key"
}
},
{
"name": "environmentKey",
"in": "query",
"description": "The environment key",
"required": true,
"schema": {
"type": "string",
"format": "string",
"description": "The environment key"
}
},
{
"name": "applicationKey",
"in": "query",
"description": "Comma separated list of application keys",
"schema": {
"type": "string",
"format": "string",
"description": "Comma separated list of application keys"
}
},
{
"name": "limit",
"in": "query",
"description": "The number of deployments to return. Default is 20. Maximum allowed is 100.",
"schema": {
"type": "integer",
"format": "int64",
"description": "The number of deployments to return. Default is 20. Maximum allowed is 100."
}
},
{
"name": "expand",
"in": "query",
"description": "Expand properties in response. Options: `pullRequests`, `flagReferences`",
"schema": {
"type": "string",
"format": "string",
"description": "Expand properties in response. Options: `pullRequests`, `flagReferences`"
}
},
{
"name": "from",
"in": "query",
"description": "Unix timestamp in milliseconds. Default value is 7 days ago.",
"schema": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp in milliseconds. Default value is 7 days ago."
}
},
{
"name": "to",
"in": "query",
"description": "Unix timestamp in milliseconds. Default value is now.",
"schema": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp in milliseconds. Default value is now."
}
},
{
"name": "after",
"in": "query",
"description": "Identifier used for pagination",
"schema": {
"type": "string",
"format": "string",
"description": "Identifier used for pagination"
}
},
{
"name": "before",
"in": "query",
"description": "Identifier used for pagination",
"schema": {
"type": "string",
"format": "string",
"description": "Identifier used for pagination"
}
},
{
"name": "kind",
"in": "query",
"description": "The deployment kind",
"schema": {
"type": "string",
"format": "string",
"description": "The deployment kind"
}
},
{
"name": "status",
"in": "query",
"description": "The deployment status",
"schema": {
"type": "string",
"format": "string",
"description": "The deployment status"
}
}
],
"operationId": "getDeployments"
}
},
"/api/v2/engineering-insights/deployments/{deploymentID}": {
"get": {
"responses": {
"200": {
"description": "Deployment response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeploymentRep"
}
}
}
},
"400": {
"description": "Invalid request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationFailedErrorRep"
}
}
}
},
"401": {
"description": "Invalid access token",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UnauthorizedErrorRep"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ForbiddenErrorRep"
}
}
}
},
"404": {
"description": "Invalid resource identifier",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundErrorRep"
}
}
}
},
"429": {
"description": "Rate limited",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RateLimitedErrorRep"
}
}
}
}
},
"tags": [
"Insights deployments (beta)"
],
"summary": "Get deployment",
"description": "Get a deployment by ID.\n\nThe deployment ID is returned as part of the [List deployments](https://launchdarkly.com/docs/api/insights-deployments-beta/get-deployments) response. It is the `id` field of each element in the `items` array.\n\n### Expanding the deployment response\n\nLaunchDarkly supports expanding the deployment response to include additional fields.\n\nTo expand the response, append the `expand` query parameter and include the following:\n\n* `pullRequests` includes details on all of the pull requests associated with each deployment\n* `flagReferences` includes details on all of the references to flags in each deployment\n\nFor example, use `?expand=pullRequests` to include the `pullRequests` field in the response. By default, this field is **not** included in the response.\n",
"parameters": [
{
"name": "deploymentID",
"in": "path",
"description": "The deployment ID",
"required": true,
"schema": {
"type": "string",
"format": "string",
"description": "The deployment ID"
}
},
{
"name": "expand",
"in": "query",
"description": "Expand properties in response. Options: `pullRequests`, `flagReferences`",
"schema": {
"type": "string",
"format": "string",
"description": "Expand properties in response. Options: `pullRequests`, `flagReferences`"
}
}
],
"operationId": "getDeployment"
},
"patch": {
"responses": {
"200": {
"description": "Deployment response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeploymentRep"
}
}
}
},
"400": {
"description": "Invalid request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationFailedErrorRep"
}
}
}
},
"401": {
"description": "Invalid access token",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UnauthorizedErrorRep"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ForbiddenErrorRep"
}
}
}
},
"404": {
"description": "Invalid resource identifier",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundErrorRep"
}
}
}
},
"429": {
"description": "Rate limited",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RateLimitedErrorRep"
}
}
}
}
},
"tags": [
"Insights deployments (beta)"
],
"summary": "Update deployment",
"description": "Update a deployment by ID. Updating a deployment uses a [JSON patch](https://datatracker.ietf.org/doc/html/rfc6902) representation of the desired changes. To learn more, read [Updates](https://launchdarkly.com/docs/api#updates).- to sort in descending order. Allowed fields: name",
"schema": {
"type": "string",
"format": "string",
"description": "Sort flag list by field. Prefix field with - to sort in descending order. Allowed fields: name"
}
},
{
"name": "query",
"in": "query",
"description": "Filter list of insights groups by name.",
"schema": {
"type": "string",
"format": "string",
"description": "Filter list of insights groups by name."
}
},
{
"name": "expand",
"in": "query",
"description": "Options: `scores`, `environment`, `metadata`",
"schema": {
"type": "string",
"format": "string",
"description": "Options: `scores`, `environment`, `metadata`"
}
}
],
"operationId": "getInsightGroups"
}
},
"/api/v2/engineering-insights/insights/groups/{insightGroupKey}": {
"get": {
"responses": {
"200": {
"description": "Insight group response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InsightGroup"
}
}
}
},
"400": {
"description": "Invalid request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationFailedErrorRep"
}
}
}
},
"401": {
"description": "Invalid access token",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UnauthorizedErrorRep"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ForbiddenErrorRep"
}
}
}
},
"404": {
"description": "Invalid resource identifier",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundErrorRep"
}
}
}
},
"429": {
"description": "Rate limited",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RateLimitedErrorRep"
}
}
}
}
},
"tags": [
"Insights scores (beta)"
],
"summary": "Get insight group",
"description": "Get insight group\n\n### Expanding the insight group response\n\nLaunchDarkly supports expanding the insight group response to include additional fields.\n\nTo expand the response, append the `expand` query parameter and include the following:\n\n* `scores` includes details on all of the scores used in the engineering insights metrics views for this group\n* `environment` includes details on each environment associated with this group\n\nFor example, use `?expand=scores` to include the `scores` field in the response. By default, this field is **not** included in the response.\n",
"parameters": [
{
"name": "insightGroupKey",
"in": "path",
"description": "The insight group key",
"required": true,
"schema": {
"type": "string",
"format": "string",
"description": "The insight group key"
}
},
{
"name": "expand",
"in": "query",
"description": "Options: `scores`, `environment`",
"schema": {
"type": "string",
"format": "string",
"description": "Options: `scores`, `environment`"
}
}
],
"operationId": "getInsightGroup"
},
"patch": {
"responses": {
"200": {
"description": "Insight group response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InsightGroup"
}
}
}
},
"400": {
"description": "Invalid request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationFailedErrorRep"
}
}
}
},
"401": {
"description": "Invalid access token",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UnauthorizedErrorRep"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ForbiddenErrorRep"
}
}
}
},
"404": {
"description": "Invalid resource identifier",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundErrorRep"
}
}
}
},
"422": {
"description": "Invalid patch content",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PatchFailedErrorRep"
}
}
}
},
"429": {
"description": "Rate limited",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RateLimitedErrorRep"
}
}
}
}
},
"tags": [
"Insights scores (beta)"
],
"summary": "Patch insight group",
"description": "Update an insight group. Updating an insight group uses a [JSON patch](https://datatracker.ietf.org/doc/html/rfc6902) representation of the desired changes. To learn more, read [Updates](https://launchdarkly.com/docs/api#updates).",
"parameters": [
{
"name": "insightGroupKey",
"in": "path",
"description": "The insight group key",
"required": true,
"schema": {
"type": "string",
"format": "string",
"description": "The insight group key"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/JSONPatch"
},
"example": [
{
"op": "replace",
"path": "/name",
"value": "Prod group"
}
]
}
},
"required": true
},
"operationId": "patchInsightGroup"
},
"delete": {
"responses": {
"204": {
"description": "Action succeeded"
},
"400": {
"description": "Invalid request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationFailedErrorRep"
}
}
}
},
"401": {
"description": "Invalid access token",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UnauthorizedErrorRep"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ForbiddenErrorRep"
}
}
}
},
"404": {
"description": "Invalid resource identifier",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundErrorRep"
}
}
}
},
"429": {
"description": "Rate limited",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RateLimitedErrorRep"
}
}
}
}
},
"tags": [
"Insights scores (beta)"
],
"summary": "Delete insight group",
"description": "Delete insight group",
"parameters": [
{
"name": "insightGroupKey",
"in": "path",
"description": "The insight group key",
"required": true,
"schema": {
"type": "string",
"format": "string",
"description": "The insight group key"
}
}
],
"operationId": "deleteInsightGroup"
}
},
"/api/v2/engineering-insights/insights/scores": {
"get": {
"responses": {
"200": {
"description": "Insight score response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InsightScores"
}
}
}
},
"400": {
"description": "Invalid request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationFailedErrorRep"
}
}
}
},
"401": {
"description": "Invalid access token",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UnauthorizedErrorRep"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ForbiddenErrorRep"
}
}
}
},
"429": {
"description": "Rate limited",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RateLimitedErrorRep"
}
}
}
}
},
"tags": [
"Insights scores (beta)"
],
"summary": "Get insight scores",
"description": "Return insights scores, based on the given parameters. This data is also used in engineering insights metrics views.",
"parameters": [
{
"name": "projectKey",
"in": "query",
"description": "The project key",
"required": true,
"schema": {
"type": "string",
"format": "string",
"description": "The project key"
}
},
{
"name": "environmentKey",
"in": "query",
"description": "The environment key",
"required": true,
"schema": {
"type": "string",
"format": "string",
"description": "The environment key"
}
},
{
"name": "applicationKey",
"in": "query",
"description": "Comma separated list of application keys",
"schema": {
"type": "string",
"format": "string",
"description": "Comma separated list of application keys"
}
}
],
"operationId": "getInsightsScores"
}
},
"/api/v2/engineering-insights/pull-requests": {
"get": {
"responses": {
"200": {
"description": "Pull request collection response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PullRequestCollectionRep"
}
}
}
},
"400": {
"description": "Invalid request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationFailedErrorRep"
}
}
}
},
"401": {
"description": "Invalid access token",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UnauthorizedErrorRep"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ForbiddenErrorRep"
}
}
}
},
"404": {
"description": "Invalid resource identifier",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundErrorRep"
}
}
}
},
"429": {
"description": "Rate limited",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RateLimitedErrorRep"
}
}
}
}
},
"tags": [
"Insights pull requests (beta)"
],
"summary": "List pull requests",
"description": "Get a list of pull requests\n\n### Expanding the pull request collection response\n\nLaunchDarkly supports expanding the pull request collection response to include additional fields.\n\nTo expand the response, append the `expand` query parameter and include the following:\n\n* `deployments` includes details on all of the deployments associated with each pull request\n* `flagReferences` includes details on all of the references to flags in each pull request\n* `leadTime` includes details about the lead time of the pull request for each stage\n\nFor example, use `?expand=deployments` to include the `deployments` field in the response. By default, this field is **not** included in the response.\n",
"parameters": [
{
"name": "projectKey",
"in": "query",
"description": "The project key",
"required": true,
"schema": {
"type": "string",
"format": "string",
"description": "The project key"
}
},
{
"name": "environmentKey",
"in": "query",
"description": "Required if you are using the sort parameter's leadTime option to sort pull requests.",
"schema": {
"type": "string",
"format": "string",
"description": "Required if you are using the sort parameter's leadTime option to sort pull requests."
}
},
{
"name": "applicationKey",
"in": "query",
"description": "Filter the results to pull requests deployed to a comma separated list of applications",
"schema": {
"type": "string",
"format": "string",
"description": "Filter the results to pull requests deployed to a comma separated list of applications"
}
},
{
"name": "status",
"in": "query",
"description": "Filter results to pull requests with the given status. Options: `open`, `merged`, `closed`, `deployed`.",
"schema": {
"type": "string",
"format": "string",
"description": "Filter results to pull requests with the given status. Options: `open`, `merged`, `closed`, `deployed`."
}
},
{
"name": "query",
"in": "query",
"description": "Filter list of pull requests by title or author",
"schema": {
"type": "string",
"format": "string",
"description": "Filter list of pull requests by title or author"
}
},
{
"name": "limit",
"in": "query",
"description": "The number of pull requests to return. Default is 20. Maximum allowed is 100.",
"schema": {
"type": "integer",
"format": "int64",
"description": "The number of pull requests to return. Default is 20. Maximum allowed is 100."
}
},
{
"name": "expand",
"in": "query",
"description": "Expand properties in response. Options: `deployments`, `flagReferences`, `leadTime`.",
"schema": {
"type": "string",
"format": "string",
"description": "Expand properties in response. Options: `deployments`, `flagReferences`, `leadTime`."
}
},
{
"name": "sort",
"in": "query",
"description": "Sort results. Requires the `environmentKey` to be set. Options: `leadTime` (asc) and `-leadTime` (desc). When query option is excluded, default sort is by created or merged date.",
"schema": {
"type": "string",
"format": "string",
"description": "Sort results. Requires the `environmentKey` to be set. Options: `leadTime` (asc) and `-leadTime` (desc). When query option is excluded, default sort is by created or merged date."
}
},
{
"name": "from",
"in": "query",
"description": "Unix timestamp in milliseconds. Default value is 7 days ago.",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "to",
"in": "query",
"description": "Unix timestamp in milliseconds. Default value is now.",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "after",
"in": "query",
"description": "Identifier used for pagination",
"schema": {
"type": "string",
"format": "string",
"description": "Identifier used for pagination"
}
},
{
"name": "before",
"in": "query",
"description": "Identifier used for pagination",
"schema": {
"type": "string",
"format": "string",
"description": "Identifier used for pagination"
}
}
],
"operationId": "getPullRequests"
}
},
"/api/v2/engineering-insights/repositories": {
"get": {
"responses": {
"200": {
"description": "Repository collection response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InsightsRepositoryCollection"
}
}
}
},
"400": {
"description": "Invalid request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationFailedErrorRep"
}
}
}
},
"401": {
"description": "Invalid access token",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UnauthorizedErrorRep"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ForbiddenErrorRep"
}
}
}
},
"404": {
"description": "Invalid resource identifier",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundErrorRep"
}
}
}
},
"429": {
"description": "Rate limited",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RateLimitedErrorRep"
}
}
}
}
},
"tags": [
"Insights repositories (beta)"
],
"summary": "List repositories",
"description": "Get a list of repositories\n\n### Expanding the repository collection response\n\nLaunchDarkly supports expanding the repository collection response to include additional fields.\n\nTo expand the response, append the `expand` query parameter and include the following:\n\n* `projects` includes details on all of the LaunchDarkly projects associated with each repository\n\nFor example, use `?expand=projects` to include the `projects` field in the response. By default, this field is **not** included in the response.\n",
"parameters": [
{
"name": "expand",
"in": "query",
"description": "Expand properties in response. Options: `projects`",
"schema": {
"type": "string",
"format": "string",
"description": "Expand properties in response. Options: `projects`"
}
}
],
"operationId": "getInsightsRepositories"
}
},
"/api/v2/engineering-insights/repositories/projects": {
"put": {
"responses": {
"200": {
"description": "Repositories projects response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InsightsRepositoryProjectCollection"
}
}
}
},
"400": {
"description": "Invalid request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationFailedErrorRep"
}
}
}
},
"401": {
"description": "Invalid access token",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UnauthorizedErrorRep"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ForbiddenErrorRep"
}
}
}
},
"404": {
"description": "Invalid resource identifier",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundErrorRep"
}
}
}
},
"429": {
"description": "Rate limited",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RateLimitedErrorRep"
}
}
}
}
},
"tags": [
"Insights repositories (beta)"
],
"summary": "Associate repositories with projects",
"description": "Associate repositories with projects",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InsightsRepositoryProjectMappings"
}
}
},
"required": true
},
"operationId": "associateRepositoriesAndProjects"
}
},
"/api/v2/engineering-insights/repositories/{repositoryKey}/projects/{projectKey}": {
"delete": {
"responses": {
"204": {
"description": "Action succeeded"
},
"400": {
"description": "Invalid request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationFailedErrorRep"
}
}
}
},
"401": {
"description": "Invalid access token",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UnauthorizedErrorRep"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ForbiddenErrorRep"
}
}
}
},
"404": {
"description": "Invalid resource identifier",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundErrorRep"
}
}
}
},
"429": {
"description": "Rate limited",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RateLimitedErrorRep"
}
}
}
}
},
"tags": [
"Insights repositories (beta)"
],
"summary": "Remove repository project association",
"description": "Remove repository project association",
"parameters": [
{
"name": "repositoryKey",
"in": "path",
"description": "The repository key",
"required": true,
"schema": {
"type": "string",
"format": "string",
"description": "The repository key"
}
},
{
"name": "projectKey",
"in": "path",
"description": "The project key",
"required": true,
"schema": {
"type": "string",
"format": "string",
"description": "The project key"
}
}
],
"operationId": "deleteRepositoryProject"
}
}
},
"components": {
"schemas": {
"AIConfigRep": {
"type": "object",
"required": [
"key",
"name"
],
"properties": {
"key": {
"type": "string",
"description": "The key of the AI Config",
"example": "aiconfig-key-123abc"
},
"name": {
"type": "string",
"description": "The name of the AI Config",
"example": "AI Config 1"
}
}
},
"Access": {
"type": "object",
"required": [
"denied",
"allowed"
],
"properties": {
"denied": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AccessDenied"
}
},
"allowed": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AccessAllowedRep"
}
}
}
},
"AccessAllowedReason": {
"type": "object",
"required": [
"effect"
],
"properties": {
"resources": {
"type": "array",
"description": "Resource specifier strings",
"items": {
"type": "string"
},
"example": [
"proj/*:env/*;qa_*:/flag/*"
]
},
"notResources": {
"type": "array",
"description": "Targeted resources are the resources NOT in this list. The resources and notActions fields must be empty to use this field.",
"items": {
"type": "string"
}
},
"actions": {
"type": "array",
"description": "Actions to perform on a resource",
"items": {
"$ref": "#/components/schemas/ActionSpecifier"
},
"example": [
"*"
]
},
"notActions": {
"type": "array",
"description": "Targeted actions are the actions NOT in this list. The actions and notResources fields must be empty to use this field.",
"items": {
"$ref": "#/components/schemas/ActionSpecifier"
}
},
"effect": {
"type": "string",
"description": "Whether this statement should allow or deny actions on the resources.",
"example": "allow",
"enum": [
"allow",
"deny"
]
},
"role_name": {
"type": "string"
}
}
},
"AccessAllowedRep": {
"type": "object",
"required": [
"action",
"reason"
],
"properties": {
"action": {
"$ref": "#/components/schemas/ActionIdentifier"
},
"reason": {
"$ref": "#/components/schemas/AccessAllowedReason"
}
}
},
"AccessDenied": {
"type": "object",
"required": [
"action",
"reason"
],
"properties": {
"action": {
"$ref": "#/components/schemas/ActionIdentifier"
},
"reason": {
"$ref": "#/components/schemas/AccessDeniedReason"
}
}
},
"AccessDeniedReason": {
"type": "object",
"required": [
"effect"
],
"properties": {
"resources": {
"type": "array",
"description": "Resource specifier strings",
"items": {
"type": "string"
},
"example": [
"proj/*:env/*;qa_*:/flag/*"
]
},
"notResources": {
"type": "array",
"description": "Targeted resources are the resources NOT in this list. The resources and notActions fields must be empty to use this field.",
"items": {
"type": "string"
}
},
"actions": {
"type": "array",
"description": "Actions to perform on a resource",
"items": {
"$ref": "#/components/schemas/ActionSpecifier"
},
"example": [
"*"
]
},
"notActions": {
"type": "array",
"description": "Targeted actions are the actions NOT in this list. The actions and notResources fields must be empty to use this field.",
"items": {
"$ref": "#/components/schemas/ActionSpecifier"
}
},
"effect": {
"type": "string",
"description": "Whether this statement should allow or deny actions on the resources.",
"example": "allow",
"enum": [
"allow",
"deny"
]
},
"role_name": {
"type": "string"
}
}
},
"AccessTokenPost": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A human-friendly name for the access token"
},
"description": {
"type": "string",
"description": "A description for the access token"
},
"role": {
"type": "string",
"description": "Base role for the token",
"enum": [
"reader",
"writer",
"admin"
]
},
"customRoleIds": {
"type": "array",
"description": "A list of custom role IDs to use as access limits for the access token",
"items": {
"type": "string"
}
},
"inlineRole": {
"type": "array",
"description": "A JSON array of statements represented as JSON objects with three attributes: effect, resources, actions. May be used in place of a role.",
"items": {
"$ref": "#/components/schemas/StatementPost"
}
},
"serviceToken": {
"type": "boolean",
"description": "Whether the token is a service token"
},
"defaultApiVersion": {
"type": "integer",
"description": "The default API version for this token"
}
}
},
"ActionIdentifier": {
"type": "string"
},
"ActionInput": {
"type": "object",
"properties": {
"instructions": {
"description": "An array of instructions for the stage. Each object in the array uses the semantic patch format for updating a feature flag.",
"example": "{\"instructions\": [{ \"kind\": \"turnFlagOn\"}]}"
}
}
},
"ActionOutput": {
"type": "object",
"required": [
"kind",
"instructions"
],
"properties": {
"kind": {
"type": "string",
"description": "The type of action for this stage",
"example": "patch"
},
"instructions": {
"description": "An array of instructions for the stage. Each object in the array uses the semantic patch format for updating a feature flag.",
"example": "[{\"kind\": \"turnFlagOn\"}]",
"$ref": "#/components/schemas/Instructions"
}
}
},
"ActionSpecifier": {
"type": "string"
},
"AllVariationsSummary": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/VariationSummary"
}
},
"ApplicationCollectionRep": {
"type": "object",
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"items": {
"type": "array",
"description": "A list of applications",
"items": {
"$ref": "#/components/schemas/ApplicationRep"
}
},
"totalCount": {
"type": "integer",
"description": "The number of applications",
"example": 1
}
}
},
"ApplicationFlagCollectionRep": {
"type": "object",
"properties": {
"items": {
"type": "array",
"description": "A list of the flags that have been evaluated by the application",
"items": {
"$ref": "#/components/schemas/FlagListingRep"
}
},
"totalCount": {
"type": "integer",
"description": "The number of flags that have been evaluated by the application",
"example": 1
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"ApplicationRep": {
"type": "object",
"required": [
"autoAdded",
"key",
"kind",
"name"
],
"properties": {
"flags": {
"description": "Details about the flags that have been evaluated by the application",
"$ref": "#/components/schemas/ApplicationFlagCollectionRep"
},
"_access": {
"description": "Details on the allowed and denied actions for this application",
"$ref": "#/components/schemas/Access"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"_version": {
"type": "integer",
"description": "Version of the application"
},
"autoAdded": {
"type": "boolean",
"description": "Whether the application was automatically created because it was included in a context when a LaunchDarkly SDK evaluated a feature flag, or was created through the LaunchDarkly UI or REST API.",
"example": true
},
"creationDate": {
"description": "Timestamp of when the application version was created",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"description": {
"type": "string",
"description": "The application description",
"example": "The LaunchDarkly Cafe app"
},
"key": {
"type": "string",
"description": "The unique identifier of this application",
"example": "com.launchdarkly.cafe"
},
"kind": {
"type": "string",
"description": "To distinguish the kind of application",
"example": "mobile",
"enum": [
"browser",
"mobile",
"server"
]
},
"_maintainer": {
"description": "Associated maintainer member or team info for the application",
"$ref": "#/components/schemas/MaintainerRep"
},
"name": {
"type": "string",
"description": "The name of the application",
"example": "LaunchDarklyCafe"
}
}
},
"ApplicationVersionRep": {
"type": "object",
"required": [
"autoAdded",
"key",
"name"
],
"properties": {
"_access": {
"description": "Details on the allowed and denied actions for this application version",
"$ref": "#/components/schemas/Access"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"_version": {
"type": "integer",
"description": "Version of the application version"
},
"autoAdded": {
"type": "boolean",
"description": "Whether the application version was automatically created, because it was included in a context when a LaunchDarkly SDK evaluated a feature flag, or if the application version was created through the LaunchDarkly UI or REST API. ",
"example": true
},
"creationDate": {
"description": "Timestamp of when the application version was created",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"key": {
"type": "string",
"description": "The unique identifier of this application version",
"example": "2"
},
"name": {
"type": "string",
"description": "The name of this version",
"example": "01.02.03"
},
"supported": {
"type": "boolean",
"description": "Whether this version is supported. Only applicable if the application kind is mobile.",
"example": true
}
}
},
"ApplicationVersionsCollectionRep": {
"type": "object",
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"items": {
"type": "array",
"description": "A list of the versions for this application",
"items": {
"$ref": "#/components/schemas/ApplicationVersionRep"
}
},
"totalCount": {
"type": "integer",
"description": "The number of versions for this application",
"example": 1
}
}
},
"ApprovalRequestResponse": {
"type": "object",
"required": [
"_id",
"_version",
"creationDate",
"serviceKind",
"reviewStatus",
"allReviews",
"notifyMemberIds",
"status",
"instructions",
"conflicts",
"_links"
],
"properties": {
"_id": {
"type": "string",
"description": "The ID of this approval request",
"example": "12ab3c45de678910abc12345"
},
"_version": {
"type": "integer",
"description": "Version of the approval request",
"example": 1
},
"creationDate": {
"description": "Timestamp of when the approval request was created",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"serviceKind": {
"description": "The approval service for this request. May be LaunchDarkly or an external approval service, such as ServiceNow or JIRA.",
"example": "launchdarkly",
"$ref": "#/components/schemas/ApprovalRequestServiceKind"
},
"requestorId": {
"type": "string",
"description": "The ID of the member who requested the approval",
"example": "12ab3c45de678910abc12345"
},
"description": {
"type": "string",
"description": "A human-friendly name for the approval request",
"example": "example: request approval from someone"
},
"reviewStatus": {
"type": "string",
"description": "Current status of the review of this approval request",
"example": "pending",
"enum": [
"approved",
"declined",
"pending"
]
},
"allReviews": {
"type": "array",
"description": "An array of individual reviews of this approval request",
"items": {
"$ref": "#/components/schemas/ReviewResponse"
}
},
"notifyMemberIds": {
"type": "array",
"description": "An array of member IDs. These members are notified to review the approval request.",
"items": {
"type": "string"
},
"example": [
"1234a56b7c89d012345e678f"
]
},
"appliedDate": {
"description": "Timestamp of when the approval request was applied",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"appliedByMemberId": {
"type": "string",
"description": "The member ID of the member who applied the approval request",
"example": "1234a56b7c89d012345e678f"
},
"appliedByServiceTokenId": {
"type": "string",
"description": "The service token ID of the service token which applied the approval request",
"example": "1234a56b7c89d012345e678f"
},
"status": {
"type": "string",
"description": "Current status of the approval request",
"example": "pending",
"enum": [
"pending",
"completed",
"failed",
"scheduled"
]
},
"instructions": {
"description": "List of instructions in semantic patch format to be applied to the feature flag",
"example": "[{\"kind\": \"turnFlagOn\"}]",
"$ref": "#/components/schemas/Instructions"
},
"conflicts": {
"type": "array",
"description": "Details on any conflicting approval requests",
"items": {
"$ref": "#/components/schemas/Conflict"
}
},
"_links": {
"type": "object",
"additionalProperties": {},
"description": "The location and content type of related resources"
},
"executionDate": {
"description": "Timestamp for when instructions will be executed",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"operatingOnId": {
"type": "string",
"description": "ID of scheduled change to edit or delete",
"example": "12ab3c45de678910abc12345"
},
"integrationMetadata": {
"description": "Details about the object in an external service corresponding to this approval request, such as a ServiceNow change request or a JIRA ticket, if an external approval service is being used",
"$ref": "#/components/schemas/IntegrationMetadata"
},
"source": {
"description": "Details about the source feature flag, if copied",
"$ref": "#/components/schemas/CopiedFromEnv"
},
"customWorkflowMetadata": {
"description": "Details about the custom workflow, if this approval request is part of a custom workflow",
"$ref": "#/components/schemas/CustomWorkflowMeta"
},
"resourceId": {
"type": "string",
"description": "String representation of a resource"
},
"approvalSettings": {
"description": "The settings for this approval",
"$ref": "#/components/schemas/ApprovalSettings"
}
}
},
"ApprovalRequestServiceKind": {
"type": "string"
},
"ApprovalSettings": {
"type": "object",
"required": [
"required",
"bypassApprovalsForPendingChanges",
"minNumApprovals",
"canReviewOwnRequest",
"canApplyDeclinedChanges",
"serviceKind",
"serviceConfig",
"requiredApprovalTags"
],
"properties": {
"required": {
"type": "boolean",
"description": "If approvals are required for this environment",
"example": true
},
"bypassApprovalsForPendingChanges": {
"type": "boolean",
"description": "Whether to skip approvals for pending changes",
"example": false
},
"minNumApprovals": {
"type": "integer",
"description": "Sets the amount of approvals required before a member can apply a change. The minimum is one and the maximum is five.",
"example": 1
},
"canReviewOwnRequest": {
"type": "boolean",
"description": "Allow someone who makes an approval request to apply their own change",
"example": false
},
"canApplyDeclinedChanges": {
"type": "boolean",
"description": "Allow applying the change as long as at least one person has approved",
"example": true
},
"autoApplyApprovedChanges": {
"type": "boolean",
"description": "Automatically apply changes that have been approved by all reviewers. This field is only applicable for approval services other than LaunchDarkly.",
"example": true
},
"serviceKind": {
"type": "string",
"description": "Which service to use for managing approvals",
"example": "launchdarkly"
},
"serviceConfig": {
"type": "object",
"additionalProperties": {},
"example": {}
},
"requiredApprovalTags": {
"type": "array",
"description": "Require approval only on flags with the provided tags. Otherwise all flags will require approval.",
"items": {
"type": "string"
},
"example": [
"require-approval"
]
},
"serviceKindConfigurationId": {
"type": "string",
"description": "Optional field for integration configuration ID of a custom approval integration. This is an Enterprise-only feature.",
"example": "1ef45a85-218f-4428-a8b2-a97e5f56c258"
},
"resourceKind": {
"type": "string",
"description": "The kind of resource for which the approval settings apply, for example, flag or segment"
}
}
},
"ApprovalsCapabilityConfig": {
"type": "object",
"properties": {
"additionalFormVariables": {
"type": "array",
"description": "The additional form variables for the approvals capability",
"items": {
"$ref": "#/components/schemas/FormVariable"
},
"example": "invalid example"
}
}
},
"AssignedToRep": {
"type": "object",
"properties": {
"membersCount": {
"type": "integer",
"description": "The number of individual members this role is assigned to"
},
"teamsCount": {
"type": "integer",
"description": "The number of teams this role is assigned to"
}
}
},
"Audience": {
"type": "object",
"required": [
"name"
],
"properties": {
"environment": {
"description": "Details about the environment. When the environment has been deleted, this field is omitted.",
"$ref": "#/components/schemas/EnvironmentSummary"
},
"name": {
"type": "string",
"description": "The release phase name",
"example": "Phase 1 - Testing"
},
"configuration": {
"description": "The configuration for the audience's rollout.",
"$ref": "#/components/schemas/AudienceConfiguration"
},
"segmentKeys": {
"type": "array",
"description": "A list of segment keys",
"items": {
"type": "string"
},
"example": [
"segment-key-123abc"
]
}
}
},
"AudienceConfiguration": {
"type": "object",
"required": [
"releaseStrategy",
"requireApproval"
],
"properties": {
"releaseStrategy": {
"description": "The release strategy",
"example": "monitoredRelease",
"$ref": "#/components/schemas/ReleaseStrategy"
},
"requireApproval": {
"type": "boolean",
"description": "Whether or not the audience requires approval",
"example": true
},
"notifyMemberIds": {
"type": "array",
"description": "An array of member IDs. These members are notified to review the approval request.",
"items": {
"type": "string"
},
"example": [
"1234a56b7c89d012345e678f"
]
},
"notifyTeamKeys": {
"type": "array",
"description": "An array of team keys. The members of these teams are notified to review the approval request.",
"items": {
"type": "string"
},
"example": [
"example-reviewer-team"
]
},
"releaseGuardianConfiguration": {
"description": "The configuration for the release guardian.",
"$ref": "#/components/schemas/ReleaseGuardianConfiguration"
}
}
},
"AudiencePost": {
"type": "object",
"required": [
"environmentKey",
"name"
],
"properties": {
"environmentKey": {
"type": "string",
"description": "A project-unique key for the environment."
},
"name": {
"type": "string",
"description": "The audience name"
},
"segmentKeys": {
"type": "array",
"description": "Segments targeted by this audience.",
"items": {
"type": "string"
}
},
"configuration": {
"description": "The configuration for the audience's rollout.",
"$ref": "#/components/schemas/AudienceConfiguration"
}
}
},
"AudienceStatus": {
"type": "string"
},
"Audiences": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Audience"
}
},
"AuditLogEntryListingRep": {
"type": "object",
"required": [
"_links",
"_id",
"_accountId",
"date",
"accesses",
"kind",
"name",
"description",
"shortDescription"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"_id": {
"type": "string",
"description": "The ID of the audit log entry",
"example": "1234a56b7c89d012345e678f"
},
"_accountId": {
"type": "string",
"description": "The ID of the account to which this audit log entry belongs",
"example": "1234a56b7c89d012345e678f"
},
"date": {
"description": "Timestamp of the audit log entry",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"accesses": {
"type": "array",
"description": "Details on the actions performed and resources acted on in this audit log entry",
"items": {
"$ref": "#/components/schemas/ResourceAccess"
}
},
"kind": {
"description": "The type of resource this audit log entry refers to",
"example": "flag",
"$ref": "#/components/schemas/ResourceKind"
},
"name": {
"type": "string",
"description": "The name of the resource this audit log entry refers to",
"example": "Example feature flag"
},
"description": {
"type": "string",
"description": "Description of the change recorded in the audit log entry",
"example": "Example, turning on the flag for testing"
},
"shortDescription": {
"type": "string",
"description": "Shorter version of the change recorded in the audit log entry",
"example": "Example, turning on the flag"
},
"comment": {
"type": "string",
"description": "Optional comment for the audit log entry",
"example": "This is an automated test"
},
"subject": {
"description": "Details of the subject who initiated the action described in the audit log entry",
"$ref": "#/components/schemas/SubjectDataRep"
},
"member": {
"description": "Details of the member who initiated the action described in the audit log entry",
"$ref": "#/components/schemas/MemberDataRep"
},
"token": {
"description": "Details of the access token that initiated the action described in the audit log entry",
"$ref": "#/components/schemas/TokenSummary"
},
"app": {
"description": "Details of the authorized application that initiated the action described in the audit log entry",
"$ref": "#/components/schemas/AuthorizedAppDataRep"
},
"titleVerb": {
"type": "string",
"description": "The action and resource recorded in this audit log entry",
"example": "turned on the flag"
},
"title": {
"type": "string",
"description": "A description of what occurred, in the format member titleVerb target"
},
"target": {
"description": "Details of the resource acted upon in this audit log entry",
"example": "[Ariel Flores](mailto:ariel@acme.com) turned on the flag [example-flag](https://app.launchdarkly.com/example-project/production/features/example-flag) in Production",
"$ref": "#/components/schemas/TargetResourceRep"
},
"parent": {
"$ref": "#/components/schemas/ParentResourceRep"
}
}
},
"AuditLogEntryListingRepCollection": {
"type": "object",
"required": [
"items",
"_links"
],
"properties": {
"items": {
"type": "array",
"description": "An array of audit log entries",
"items": {
"$ref": "#/components/schemas/AuditLogEntryListingRep"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"AuditLogEntryRep": {
"type": "object",
"required": [
"_links",
"_id",
"_accountId",
"date",
"accesses",
"kind",
"name",
"description",
"shortDescription"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"_id": {
"type": "string",
"description": "The ID of the audit log entry",
"example": "1234a56b7c89d012345e678f"
},
"_accountId": {
"type": "string",
"description": "The ID of the account to which this audit log entry belongs",
"example": "1234a56b7c89d012345e678f"
},
"date": {
"description": "Timestamp of the audit log entry",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"accesses": {
"type": "array",
"description": "Details on the actions performed and resources acted on in this audit log entry",
"items": {
"$ref": "#/components/schemas/ResourceAccess"
}
},
"kind": {
"description": "The type of resource this audit log entry refers to",
"example": "flag",
"$ref": "#/components/schemas/ResourceKind"
},
"name": {
"type": "string",
"description": "The name of the resource this audit log entry refers to",
"example": "Example feature flag"
},
"description": {
"type": "string",
"description": "Description of the change recorded in the audit log entry",
"example": "Example, turning on the flag for testing"
},
"shortDescription": {
"type": "string",
"description": "Shorter version of the change recorded in the audit log entry",
"example": "Example, turning on the flag"
},
"comment": {
"type": "string",
"description": "Optional comment for the audit log entry",
"example": "This is an automated test"
},
"subject": {
"description": "Details of the subject who initiated the action described in the audit log entry",
"$ref": "#/components/schemas/SubjectDataRep"
},
"member": {
"description": "Details of the member who initiated the action described in the audit log entry",
"$ref": "#/components/schemas/MemberDataRep"
},
"token": {
"description": "Details of the access token that initiated the action described in the audit log entry",
"$ref": "#/components/schemas/TokenSummary"
},
"app": {
"description": "Details of the authorized application that initiated the action described in the audit log entry",
"$ref": "#/components/schemas/AuthorizedAppDataRep"
},
"titleVerb": {
"type": "string",
"description": "The action and resource recorded in this audit log entry",
"example": "turned on the flag"
},
"title": {
"type": "string",
"description": "A description of what occurred, in the format member titleVerb target"
},
"target": {
"description": "Details of the resource acted upon in this audit log entry",
"example": "[Ariel Flores](mailto:ariel@acme.com) turned on the flag [example-flag](https://app.launchdarkly.com/example-project/production/features/example-flag) in Production",
"$ref": "#/components/schemas/TargetResourceRep"
},
"parent": {
"$ref": "#/components/schemas/ParentResourceRep"
},
"delta": {
"description": "If the audit log entry has been updated, this is the JSON patch body that was used in the request to update the entity"
},
"triggerBody": {
"description": "A JSON representation of the external trigger for this audit log entry, if any"
},
"merge": {
"description": "A JSON representation of the merge information for this audit log entry, if any"
},
"previousVersion": {
"description": "If the audit log entry has been updated, this is a JSON representation of the previous version of the entity"
},
"currentVersion": {
"description": "If the audit log entry has been updated, this is a JSON representation of the current version of the entity"
},
"subentries": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AuditLogEntryListingRep"
}
}
}
},
"AuditLogEventsHookCapabilityConfigPost": {
"type": "object",
"properties": {
"statements": {
"description": "The set of resources you wish to subscribe to audit log notifications for.",
"$ref": "#/components/schemas/StatementPostList"
}
}
},
"AuditLogEventsHookCapabilityConfigRep": {
"type": "object",
"properties": {
"statements": {
"type": "array",
"description": "The set of resources you wish to subscribe to audit log notifications for.",
"items": {
"$ref": "#/components/schemas/Statement"
}
}
}
},
"AuthorizedAppDataRep": {
"type": "object",
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
}
},
"_id": {
"type": "string",
"description": "The ID of the authorized application"
},
"isScim": {
"type": "boolean",
"description": "Whether the application is authorized through SCIM"
},
"name": {
"type": "string",
"description": "The authorized application name"
},
"maintainerName": {
"type": "string",
"description": "The name of the maintainer for this authorized application"
}
}
},
"BigSegmentStoreIntegration": {
"type": "object",
"required": [
"_links",
"_id",
"integrationKey",
"projectKey",
"environmentKey",
"config",
"on",
"tags",
"name",
"version",
"_status"
],
"properties": {
"_links": {
"description": "The location and content type of related resources",
"$ref": "#/components/schemas/BigSegmentStoreIntegrationLinks"
},
"_id": {
"type": "string",
"description": "The integration ID",
"example": "12ab3c4d5ef1a2345bcde67f"
},
"integrationKey": {
"type": "string",
"description": "The integration key",
"example": "redis",
"enum": [
"redis",
"dynamodb"
]
},
"projectKey": {
"type": "string",
"description": "The project key",
"example": "default"
},
"environmentKey": {
"type": "string",
"description": "The environment key",
"example": "development"
},
"config": {
"description": "The delivery configuration for the given integration provider. Only included when requesting a single integration by ID. Refer to the formVariables field in the corresponding manifest.json for a full list of fields for each integration.",
"$ref": "#/components/schemas/FormVariableConfig"
},
"on": {
"type": "boolean",
"description": "Whether the configuration is turned on",
"example": true
},
"tags": {
"type": "array",
"description": "List of tags for this configuration",
"items": {
"type": "string"
},
"example": []
},
"name": {
"type": "string",
"description": "Name of the configuration",
"example": "Development environment configuration"
},
"version": {
"type": "integer",
"description": "Version of the current configuration",
"example": 1
},
"_access": {
"description": "Details on the allowed and denied actions for this configuration",
"$ref": "#/components/schemas/Access"
},
"_status": {
"description": "Details on the connection status of the persistent store integration",
"$ref": "#/components/schemas/BigSegmentStoreStatus"
}
}
},
"BigSegmentStoreIntegrationCollection": {
"type": "object",
"required": [
"_links",
"items"
],
"properties": {
"_links": {
"description": "The location and content type of related resources",
"$ref": "#/components/schemas/BigSegmentStoreIntegrationCollectionLinks"
},
"items": {
"type": "array",
"description": "An array of persistent store integration configurations",
"items": {
"$ref": "#/components/schemas/BigSegmentStoreIntegration"
}
}
}
},
"BigSegmentStoreIntegrationCollectionLinks": {
"type": "object",
"required": [
"self"
],
"properties": {
"self": {
"$ref": "#/components/schemas/Link"
},
"parent": {
"$ref": "#/components/schemas/Link"
}
}
},
"BigSegmentStoreIntegrationLinks": {
"type": "object",
"required": [
"self",
"parent",
"project",
"environment"
],
"properties": {
"self": {
"$ref": "#/components/schemas/Link"
},
"parent": {
"$ref": "#/components/schemas/Link"
},
"project": {
"$ref": "#/components/schemas/Link"
},
"environment": {
"$ref": "#/components/schemas/Link"
}
}
},
"BigSegmentStoreStatus": {
"type": "object",
"properties": {
"available": {
"type": "boolean",
"description": "Whether the persistent store integration is fully synchronized with the LaunchDarkly environment, and the lastSync occurred within a few minutes",
"example": true
},
"potentiallyStale": {
"type": "boolean",
"description": "Whether the persistent store integration may not be fully synchronized with the LaunchDarkly environment. true if the integration could be stale.",
"example": false
},
"lastSync": {
"description": "Timestamp of when the most recent successful sync occurred between the persistent store integration and the LaunchDarkly environment.",
"example": "1717263000000",
"$ref": "#/components/schemas/UnixMillis"
},
"lastError": {
"description": "Timestamp of when the most recent synchronization error occurred, if any",
"example": "1714584600000",
"$ref": "#/components/schemas/UnixMillis"
},
"errors": {
"type": "array",
"items": {
"$ref": "#/components/schemas/StoreIntegrationError"
}
}
}
},
"BigSegmentTarget": {
"type": "object",
"required": [
"userKey",
"included",
"excluded"
],
"properties": {
"userKey": {
"type": "string",
"description": "The target key"
},
"included": {
"type": "boolean",
"description": "Indicates whether the target is included.false.",
"example": true
},
"usingMobileKey": {
"type": "boolean",
"description": "Whether to enable availability for mobile SDKs. Defaults to true.",
"example": true
}
}
},
"CompletedBy": {
"type": "object",
"properties": {
"member": {
"description": "The LaunchDarkly member who marked this phase as complete",
"$ref": "#/components/schemas/MemberSummary"
},
"token": {
"description": "The service token used to mark this phase as complete",
"$ref": "#/components/schemas/TokenSummary"
}
}
},
"ConditionInput": {
"type": "object",
"properties": {
"scheduleKind": {
"description": "Whether the scheduled execution of the workflow stage is relative or absolute. If relative, the waitDuration and waitDurationUnit specify when the execution occurs. If absolute, the executionDate specifies when the execution occurs.",
"example": "relative",
"enum": [
"absolute",
"relative"
],
"$ref": "#/components/schemas/ScheduleKind"
},
"executionDate": {
"description": "For workflow stages whose scheduled execution is absolute, the time, in Unix milliseconds, when the stage should start.",
"example": "1706810400000",
"$ref": "#/components/schemas/UnixMillis"
},
"waitDuration": {
"type": "integer",
"description": "For workflow stages whose scheduled execution is relative, how far in the future the stage should start.",
"example": 2
},
"waitDurationUnit": {
"description": "For workflow stages whose scheduled execution is relative, the unit of measure for the waitDuration.",
"example": "calendarDay",
"enum": [
"minute",
"hour",
"calendarDay",
"calendarWeek"
],
"$ref": "#/components/schemas/DurationUnit"
},
"executeNow": {
"type": "boolean",
"description": "Whether the workflow stage should be executed immediately",
"example": false
},
"description": {
"type": "string",
"description": "A description of the approval required for this stage",
"example": "Require example-team approval for final stage"
},
"notifyMemberIds": {
"type": "array",
"description": "A list of member IDs for the members to request approval from for this stage",
"items": {
"type": "string"
},
"example": [
"507f1f77bcf86cd799439011"
]
},
"notifyTeamKeys": {
"type": "array",
"description": "A list of team keys for the teams to request approval from for this stage",
"items": {
"type": "string"
},
"example": [
"example-team"
]
},
"integrationConfig": {
"description": "Additional approval request fields for third-party integration approval systems. If you are using a third-party integration to manage approval requests, these additional fields will be described in the manifest.json for that integration, at https://github.com/launchdarkly/integration-framework.",
"$ref": "#/components/schemas/FormVariableConfig"
},
"kind": {
"description": "The type of condition to meet before executing this stage of the workflow. Use schedule to schedule a workflow stage. Use ld-approval to add an approval request to a workflow stage.",
"example": "schedule",
"$ref": "#/components/schemas/ConditionKind"
}
}
},
"ConditionKind": {
"type": "string"
},
"ConditionOutput": {
"type": "object",
"required": [
"_id",
"_execution",
"description",
"notifyMemberIds",
"allReviews",
"reviewStatus"
],
"properties": {
"_id": {
"type": "string"
},
"kind": {
"type": "string"
},
"_execution": {
"$ref": "#/components/schemas/ExecutionOutput"
},
"scheduleKind": {
"$ref": "#/components/schemas/ScheduleKind"
},
"executionDate": {
"$ref": "#/components/schemas/UnixMillis"
},
"waitDuration": {
"type": "integer"
},
"waitDurationUnit": {
"$ref": "#/components/schemas/DurationUnit"
},
"description": {
"type": "string"
},
"notifyMemberIds": {
"type": "array",
"items": {
"type": "string"
}
},
"allReviews": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ReviewOutput"
}
},
"reviewStatus": {
"type": "string"
},
"appliedDate": {
"$ref": "#/components/schemas/UnixMillis"
},
"creationConfig": {
"$ref": "#/components/schemas/FormVariableConfig"
}
}
},
"Conflict": {
"type": "object",
"properties": {
"instruction": {
"description": "Instruction in semantic patch format to be applied to the feature flag",
"$ref": "#/components/schemas/Instruction"
},
"reason": {
"type": "string",
"description": "Reason why the conflict exists"
}
}
},
"ConflictOutput": {
"type": "object",
"required": [
"stageId",
"message"
],
"properties": {
"stageId": {
"type": "string",
"description": "The stage ID",
"example": "12ab3c4d5ef1a2345bcde67f"
},
"message": {
"type": "string",
"description": "Message about the conflict"
}
}
},
"ContextAttributeName": {
"type": "object",
"required": [
"name",
"weight"
],
"properties": {
"name": {
"type": "string",
"description": "A context attribute's name.",
"example": "/firstName"
},
"weight": {
"type": "integer",
"description": "A relative estimate of the number of contexts seen recently that have an attribute with the associated name.",
"example": 2225
},
"redacted": {
"type": "boolean",
"description": "Whether or not the attribute has one or more redacted values.",
"example": false
}
}
},
"ContextAttributeNames": {
"type": "object",
"required": [
"kind",
"names"
],
"properties": {
"kind": {
"type": "string",
"description": "The kind associated with this collection of context attribute names.",
"example": "user"
},
"names": {
"type": "array",
"description": "A collection of context attribute names.",
"items": {
"$ref": "#/components/schemas/ContextAttributeName"
}
}
}
},
"ContextAttributeNamesCollection": {
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"description": "A collection of context attribute name data grouped by kind.",
"items": {
"$ref": "#/components/schemas/ContextAttributeNames"
}
}
}
},
"ContextAttributeValue": {
"type": "object",
"required": [
"name",
"weight"
],
"properties": {
"name": {
"description": "A value for a context attribute.",
"example": "Sandy"
},
"weight": {
"type": "integer",
"description": "A relative estimate of the number of contexts seen recently that have a matching value for a given attribute.",
"example": 35
}
}
},
"ContextAttributeValues": {
"type": "object",
"required": [
"kind",
"values"
],
"properties": {
"kind": {
"type": "string",
"description": "The kind associated with this collection of context attribute values.",
"example": "user"
},
"values": {
"type": "array",
"description": "A collection of context attribute values.",
"items": {
"$ref": "#/components/schemas/ContextAttributeValue"
}
}
}
},
"ContextAttributeValuesCollection": {
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"description": "A collection of context attribute value data grouped by kind.",
"items": {
"$ref": "#/components/schemas/ContextAttributeValues"
}
}
}
},
"ContextInstance": {
"type": "object",
"additionalProperties": {}
},
"ContextInstanceEvaluation": {
"type": "object",
"required": [
"name",
"key",
"_value",
"_links"
],
"properties": {
"name": {
"type": "string",
"description": "Name of the flag.",
"example": "My Flag"
},
"key": {
"type": "string",
"description": "Key of the flag.",
"example": "flag-key-123abc"
},
"_value": {
"description": "The value of the flag variation that the context receives. If there is no defined default rule, this is null.",
"example": "true"
},
"reason": {
"description": "Contains information about why that variation was selected.",
"example": "{\"kind\": \"RULE_MATCH\"}",
"$ref": "#/components/schemas/ContextInstanceEvaluationReason"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"self": {
"href": "/api/v2/projects/{projectKey}/environments/{environmentKey}/flags/evaluate",
"type": "application/json"
},
"site": {
"href": "/my-project/my-environment/features/sort.order/targeting",
"type": "text/html"
}
}
}
}
},
"ContextInstanceEvaluationReason": {
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"type": "string",
"description": "Describes the general reason that LaunchDarkly selected this variation.",
"example": "OFF"
},
"ruleIndex": {
"type": "integer",
"description": "The positional index of the matching rule if the kind is 'RULE_MATCH'. The index is 0-based.",
"example": 3
},
"ruleID": {
"type": "string",
"description": "The unique identifier of the matching rule if the kind is 'RULE_MATCH'.",
"example": "1234567890"
},
"prerequisiteKey": {
"type": "string",
"description": "The key of the flag that failed if the kind is 'PREREQUISITE_FAILED'.",
"example": "someotherflagkey"
},
"inExperiment": {
"type": "boolean",
"description": "Indicates whether the context was evaluated as part of an experiment.",
"example": true
},
"errorKind": {
"type": "string",
"description": "The specific error type if the kind is 'ERROR'.",
"example": "tried to use uninitialized Context"
}
}
},
"ContextInstanceEvaluations": {
"type": "object",
"required": [
"items",
"_links"
],
"properties": {
"items": {
"type": "array",
"description": "Details on the flag evaluations for this context instance",
"items": {
"$ref": "#/components/schemas/ContextInstanceEvaluation"
},
"example": [
{
"_links": {
"self": {
"href": "/api/v2/projects/{projectKey}/environments/{environmentKey}/flags/evaluate",
"type": "application/json"
},
"site": {
"href": "/my-project/my-environment/features/sort.order/targeting",
"type": "text/html"
}
},
"_value": true,
"key": "sort.order",
"name": "SortOrder",
"reason": {
"kind": "FALLTHROUGH"
}
},
{
"_links": {
"self": {
"href": "/api/v2/projects/{projectKey}/environments/{environmentKey}/flags/evaluate",
"type": "application/json"
},
"site": {
"href": "/my-project/my-environment/features/alternate.page/targeting",
"type": "text/html"
}
},
"_value": false,
"key": "alternate.page",
"name": "AlternatePage",
"reason": {
"kind": "RULE_MATCH",
"ruleID": "b2530cdf-14c6-4e16-b660-00239e08f19b",
"ruleIndex": 1
}
}
]
},
"totalCount": {
"type": "integer",
"description": "The number of flags",
"example": 2
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"self": {
"href": "/api/v2/projects/{projectKey}/environments/{environmentKey}/flags/evaluate",
"type": "application/json"
}
}
}
}
},
"ContextInstanceRecord": {
"type": "object",
"required": [
"id",
"context"
],
"properties": {
"lastSeen": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last time an evaluation occurred for this context instance",
"example": "2022-04-15T15:00:57.526470334Z"
},
"id": {
"type": "string",
"description": "The context instance ID",
"example": "b3JnOmxhdW5jaGRhcmtseQ"
},
"applicationId": {
"type": "string",
"description": "An identifier representing the application where the LaunchDarkly SDK is running",
"example": "GoSDK/1.2"
},
"anonymousKinds": {
"type": "array",
"description": "A list of the context kinds this context was associated with that the SDK removed because they were marked as anonymous at flag evaluation",
"items": {
"type": "string"
},
"example": [
"device",
"privateKind"
]
},
"context": {
"description": "The context, including its kind and attributes",
"example": "{\"kind\": \"user\", \"key\": \"context-key-123abc\", \"name\": \"Sandy Smith\", \"email\": \"sandy@example.com\"}"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"parent": {
"href": "/api/v2/projects/my-project/environments/my-environment",
"type": "application/json"
},
"self": {
"href": "/api/v2/projects/my-project/environments/my-env/context-instances/organization:launch-darkly:user:henry?filter=applicationId:\"GoSDK/1.2\"",
"type": "application/json"
},
"site": {
"href": "/my-project/my-environment/context-instances/organization:launch-darkly:user:henry",
"type": "text/html"
}
}
},
"_access": {
"description": "Details on the allowed and denied actions for this context instance",
"$ref": "#/components/schemas/Access"
}
}
},
"ContextInstanceSearch": {
"type": "object",
"properties": {
"filter": {
"type": "string",
"description": "A collection of context instance filters",
"example": "{\"filter\": \"kindKeys:{\"contains\": [\"user:Henry\"]},\"sort\": \"-ts\",\"limit\": 50}"
},
"sort": {
"type": "string",
"description": "Specifies a field by which to sort. LaunchDarkly supports sorting by timestamp in ascending order by specifying ts for this value, or descending order by specifying -ts.",
"example": "-ts"
},
"limit": {
"type": "integer",
"description": "Specifies the maximum number of items in the collection to return (max: 50, default: 20)",
"example": 10
},
"continuationToken": {
"type": "string",
"description": "Limits results to context instances with sort values after the value specified. You can use this for pagination, however, we recommend using the next link instead, because this value is an obfuscated string.",
"example": "QAGFKH1313KUGI2351"
}
}
},
"ContextInstanceSegmentMembership": {
"type": "object",
"required": [
"name",
"key",
"description",
"unbounded",
"external",
"isMember",
"isIndividuallyTargeted",
"isRuleTargeted",
"_links"
],
"properties": {
"name": {
"type": "string",
"description": "A human-friendly name for the segment",
"example": "Segment Name"
},
"key": {
"type": "string",
"description": "A unique key used to reference the segment",
"example": "segment-key-123abc"
},
"description": {
"type": "string",
"description": "A description of the segment's purpose",
"example": "Segment description"
},
"unbounded": {
"type": "boolean",
"description": "Whether this is an unbounded segment. Unbounded segments, also called big segments, may be list-based segments with more than 15,000 entries, or synced segments.",
"example": false
},
"external": {
"type": "string",
"description": "If the segment is a synced segment, the name of the external source",
"example": "https://amplitude.com/myCohort"
},
"isMember": {
"type": "boolean",
"description": "Whether the context is a member of this segment, either by explicit inclusion or by rule matching",
"example": true
},
"isIndividuallyTargeted": {
"type": "boolean",
"description": "Whether the context is explicitly included in this segment",
"example": true
},
"isRuleTargeted": {
"type": "boolean",
"description": "Whether the context is captured by this segment's rules. The value of this field is undefined if the context is also explicitly included (isIndividuallyTargeted is true).",
"example": false
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"ContextInstanceSegmentMemberships": {
"type": "object",
"required": [
"items",
"_links"
],
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ContextInstanceSegmentMembership"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"ContextInstances": {
"type": "object",
"required": [
"_environmentId",
"items"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"next": {
"href": "/api/v2/projects/my-project/environments/my-env/context-instances/organization:launch-darkly:user:henry?limit=2&continuationToken=2022-04-15T15:00:57.526470334Z",
"type": "application/json"
},
"self": {
"href": "/api/v2/projects/my-proj/environments/my-env/context-instances/organization:launch-darkly:user:henry-jacobs?limit=2",
"type": "application/json"
}
}
},
"totalCount": {
"type": "integer",
"description": "The number of unique context instances",
"example": 100
},
"_environmentId": {
"type": "string",
"description": "The environment ID",
"example": "57be1db38b75bf0772d11384"
},
"continuationToken": {
"type": "string",
"description": "An obfuscated string that references the last context instance on the previous page of results. You can use this for pagination, however, we recommend using the next link instead.",
"example": "QAGFKH1313KUGI2351"
},
"items": {
"type": "array",
"description": "A collection of context instances. Can include multiple versions of context instances that have the same id, but different applicationIds.",
"items": {
"$ref": "#/components/schemas/ContextInstanceRecord"
}
}
}
},
"ContextKindCreatedFrom": {
"type": "string"
},
"ContextKindRep": {
"type": "object",
"required": [
"key",
"name",
"description",
"version",
"creationDate",
"lastModified",
"createdFrom"
],
"properties": {
"key": {
"type": "string",
"description": "The context kind key",
"example": "organization-key-123abc"
},
"name": {
"type": "string",
"description": "The context kind name",
"example": "Organization"
},
"description": {
"type": "string",
"description": "The context kind description",
"example": "An example context kind, to enable targeting based on organization"
},
"version": {
"type": "integer",
"description": "The context kind version",
"example": 4
},
"creationDate": {
"description": "Timestamp of when the context kind was created",
"example": "1668530155141",
"$ref": "#/components/schemas/UnixMillis"
},
"lastModified": {
"description": "Timestamp of when the context kind was most recently changed",
"example": "1670341705251",
"$ref": "#/components/schemas/UnixMillis"
},
"lastSeen": {
"description": "Timestamp of when a context of this context kind was most recently evaluated",
"example": "1671563538193",
"$ref": "#/components/schemas/UnixMillis"
},
"createdFrom": {
"description": "How the context kind was created",
"example": "auto-add",
"enum": [
"default",
"auto-add",
"manual"
],
"$ref": "#/components/schemas/ContextKindCreatedFrom"
},
"hideInTargeting": {
"type": "boolean",
"description": "Alias for archived.",
"example": false
},
"archived": {
"type": "boolean",
"description": "Whether the context kind is archived. Archived context kinds are unavailable for targeting.",
"example": false
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"ContextKindsCollectionRep": {
"type": "object",
"required": [
"items",
"_links"
],
"properties": {
"items": {
"type": "array",
"description": "An array of context kinds",
"items": {
"$ref": "#/components/schemas/ContextKindRep"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"ContextRecord": {
"type": "object",
"required": [
"context"
],
"properties": {
"lastSeen": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last time an evaluation occurred for this context",
"example": "2022-04-15T15:00:57.526470334Z"
},
"applicationId": {
"type": "string",
"description": "An identifier representing the application where the LaunchDarkly SDK is running",
"example": "GoSDK/1.2"
},
"context": {
"description": "The context, including its kind and attributes",
"example": "{\"kind\": \"user\", \"key\": \"context-key-123abc\", \"name\": \"Sandy Smith\", \"email\": \"sandy@example.com\"}"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"parent": {
"href": "/api/v2/projects/my-project/environments/my-environment",
"type": "application/json"
},
"self": {
"href": "/api/v2/projects/my-project/environments/my-env/contexts/organization:launch-darkly:user:henry?filter=applicationId:\"GoSDK/1.2\"",
"type": "application/json"
},
"site": {
"href": "/my-project/my-environment/context/organization:launch-darkly:user:henry",
"type": "text/html"
}
}
},
"_access": {
"description": "Details on the allowed and denied actions for this context instance",
"$ref": "#/components/schemas/Access"
},
"associatedContexts": {
"type": "integer",
"description": "The total number of associated contexts. Associated contexts are contexts that have appeared in the same context instance, that is, they were part of the same flag evaluation.",
"example": 0
}
}
},
"ContextSearch": {
"type": "object",
"properties": {
"filter": {
"type": "string",
"description": "A collection of context filters",
"example": "*.name startsWith Jo,kind anyOf [\"user\",\"organization\"]"
},
"sort": {
"type": "string",
"description": "Specifies a field by which to sort. LaunchDarkly supports sorting by timestamp in ascending order by specifying ts for this value, or descending order by specifying -ts.",
"example": "-ts"
},
"limit": {
"type": "integer",
"description": "Specifies the maximum number of items in the collection to return (max: 50, default: 20)",
"example": 10
},
"continuationToken": {
"type": "string",
"description": "Limits results to contexts with sort values after the value specified. You can use this for pagination, however, we recommend using the next link instead, because this value is an obfuscated string.",
"example": "QAGFKH1313KUGI2351"
}
}
},
"Contexts": {
"type": "object",
"required": [
"_environmentId",
"items"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"next": {
"href": "/app.launchdarkly.com/api/v2/projects/my-project/environments/my-environment/contexts?filter=kind:{\"equals\": [\"organization\"]}&limit=2&continuationToken=QAGFKH1313KUGI2351",
"type": "application/json"
},
"self": {
"href": "/api/v2/projects/my-proj/environments/my-env/contexts?filter=kind:{\"equals\": [\"organization\"]}&limit=2&continuationToken=QAGFKH1313KUGI2351",
"type": "application/json"
}
}
},
"totalCount": {
"type": "integer",
"description": "The number of contexts",
"example": 100
},
"_environmentId": {
"type": "string",
"description": "The environment ID where the context was evaluated",
"example": "57be1db38b75bf0772d11384"
},
"continuationToken": {
"type": "string",
"description": "An obfuscated string that references the last context instance on the previous page of results. You can use this for pagination, however, we recommend using the next link instead.",
"example": "QAGFKH1313KUGI2351"
},
"items": {
"type": "array",
"description": "A collection of contexts. Can include multiple versions of contexts that have the same kind and key, but different applicationIds.",
"items": {
"$ref": "#/components/schemas/ContextRecord"
}
}
}
},
"CopiedFromEnv": {
"type": "object",
"required": [
"key"
],
"properties": {
"key": {
"type": "string",
"description": "Key of feature flag copied",
"example": "source-flag-key-123abc"
},
"version": {
"type": "integer",
"description": "Version of feature flag copied",
"example": 1
}
}
},
"CountBucket": {
"type": "object",
"required": [
"timestamp",
"count"
],
"properties": {
"timestamp": {
"type": "integer",
"format": "int64"
},
"count": {
"type": "integer",
"format": "int64"
}
}
},
"CountBucketsResult": {
"type": "object",
"required": [
"buckets",
"totalCount",
"bucketIntervalMs"
],
"properties": {
"buckets": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CountBucket"
}
},
"totalCount": {
"type": "integer",
"format": "int64"
},
"bucketIntervalMs": {
"type": "integer",
"format": "int64"
}
}
},
"CreateApprovalRequestRequest": {
"type": "object",
"required": [
"resourceId",
"description",
"instructions"
],
"properties": {
"resourceId": {
"type": "string",
"description": "String representation of the resource specifier",
"example": "proj/projKey:env/envKey:flag/flagKey"
},
"comment": {
"type": "string",
"description": "Optional comment describing the approval request",
"example": "optional comment"
},
"description": {
"type": "string",
"description": "A brief description of the changes you're requesting",
"example": "Requesting to update targeting"
},
"instructions": {
"description": "List of instructions in semantic patch format to be applied to the feature flag. Review the [Update feature flag](https://launchdarkly.com/docs/ld-docs/api/feature-flags/patch-feature-flag) documentation for details on available instructions.",
"example": "[{\"kind\": \"addUserTargets\", \"values\": [ \"user-key-123abc\"], \"variationId\": \"ce67d625-a8b9-4fb5-a344-ab909d9d4f4d\" }]",
"$ref": "#/components/schemas/Instructions"
},
"notifyMemberIds": {
"type": "array",
"description": "An array of member IDs. These members are notified to review the approval request.",
"items": {
"type": "string"
},
"example": [
"1234a56b7c89d012345e678f"
]
},
"notifyTeamKeys": {
"type": "array",
"description": "An array of team keys. The members of these teams are notified to review the approval request.",
"items": {
"type": "string"
},
"example": [
"example-reviewer-team"
]
},
"integrationConfig": {
"description": "Additional approval request fields for third-party integration approval systems. If you are using a third-party integration to manage approval requests, these additional fields will be described in the manifest.json for that integration, at https://github.com/launchdarkly/integration-framework.",
"$ref": "#/components/schemas/FormVariableConfig"
}
}
},
"CreatePhaseInput": {
"type": "object",
"required": [
"audiences",
"name"
],
"properties": {
"audiences": {
"type": "array",
"description": "An ordered list of the audiences for this release phase. Each audience corresponds to a LaunchDarkly environment.",
"items": {
"$ref": "#/components/schemas/AudiencePost"
}
},
"name": {
"type": "string",
"description": "The release phase name",
"example": "Phase 1 - Testing"
},
"configuration": {
"description": "The configuration for the phase's rollout.",
"$ref": "#/components/schemas/PhaseConfiguration"
}
}
},
"CreateReleaseInput": {
"type": "object",
"required": [
"releasePipelineKey"
],
"properties": {
"releaseVariationId": {
"type": "string",
"description": "The variation id to release to across all phases"
},
"releasePipelineKey": {
"type": "string",
"description": "The key of the release pipeline to attach the flag to"
}
}
},
"CreateReleasePipelineInput": {
"type": "object",
"required": [
"key",
"name",
"phases"
],
"properties": {
"description": {
"type": "string",
"description": "The release pipeline description",
"example": "Standard pipeline to roll out to production"
},
"key": {
"type": "string",
"description": "The unique identifier of this release pipeline",
"example": "standard-pipeline"
},
"name": {
"type": "string",
"description": "The name of the release pipeline",
"example": "Standard Pipeline"
},
"phases": {
"type": "array",
"description": "A logical grouping of one or more environments that share attributes for rolling out changes",
"items": {
"$ref": "#/components/schemas/CreatePhaseInput"
}
},
"tags": {
"type": "array",
"description": "A list of tags for this release pipeline",
"items": {
"type": "string"
},
"example": [
"example-tag"
]
},
"isProjectDefault": {
"type": "boolean",
"description": "Whether or not the newly created pipeline should be set as the default pipeline for this project"
},
"isLegacy": {
"type": "boolean",
"description": "Whether or not the pipeline is enabled for Release Automation."
}
}
},
"CreateWorkflowTemplateInput": {
"type": "object",
"required": [
"key"
],
"properties": {
"key": {
"type": "string"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"workflowId": {
"$ref": "#/components/schemas/FeatureWorkflowId"
},
"stages": {
"type": "array",
"items": {
"$ref": "#/components/schemas/StageInput"
}
},
"projectKey": {
"type": "string"
},
"environmentKey": {
"type": "string"
},
"flagKey": {
"type": "string"
}
}
},
"CustomProperties": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/customProperty"
}
},
"CustomRole": {
"type": "object",
"required": [
"_id",
"_links",
"key",
"name",
"policy"
],
"properties": {
"_id": {
"type": "string",
"description": "The ID of the custom role",
"example": "1234a56b7c89d012345e678f"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"_access": {
"description": "Details on the allowed and denied actions for this custom role",
"$ref": "#/components/schemas/Access"
},
"description": {
"type": "string",
"description": "The description of the custom role",
"example": "This custom role is just an example"
},
"key": {
"type": "string",
"description": "The key of the custom role",
"example": "example-custom-role"
},
"name": {
"type": "string",
"description": "The name of the custom role",
"example": "Example custom role"
},
"policy": {
"type": "array",
"description": "An array of the policies that comprise this custom role",
"items": {
"$ref": "#/components/schemas/Statement"
}
},
"basePermissions": {
"description": "Base permissions to use for this role. Defaults to no_access (older roles defaulted to reader). Recommended to set this to no_access in all cases.",
"example": "reader",
"$ref": "#/components/schemas/RoleType"
},
"resourceCategory": {
"description": "The category of resources this role is intended to manage. Can be organization, project, or any. Once set, this field cannot be changed.",
"$ref": "#/components/schemas/ResourceCategory"
},
"assignedTo": {
"description": "The number of teams and members this role is assigned to",
"$ref": "#/components/schemas/AssignedToRep"
},
"_presetBundleVersion": {
"type": "integer",
"description": "If created from a preset, the preset bundle version"
},
"_presetStatements": {
"type": "array",
"description": "If created from a preset, the read-only statements copied from the preset",
"items": {
"$ref": "#/components/schemas/Statement"
}
}
}
},
"CustomRolePost": {
"type": "object",
"required": [
"name",
"key",
"policy"
],
"properties": {
"name": {
"type": "string",
"description": "A human-friendly name for the custom role",
"example": "Ops team"
},
"key": {
"type": "string",
"description": "The custom role key",
"example": "role-key-123abc"
},
"description": {
"type": "string",
"description": "Description of custom role",
"example": "An example role for members of the ops team"
},
"policy": {
"description": "Resource statements for custom role",
"$ref": "#/components/schemas/StatementPostList"
},
"basePermissions": {
"description": "Base permissions to use for this role. Defaults to no_access (older roles defaulted to reader). Recommended to set this to no_access in all cases.",
"example": "reader",
"enum": [
"reader",
"no_access"
],
"$ref": "#/components/schemas/RoleType"
},
"resourceCategory": {
"description": "The category of resources this role is intended to manage. Can be organization, project, or any. This field is immutable.",
"$ref": "#/components/schemas/ResourceCategory"
}
}
},
"CustomRoles": {
"type": "object",
"required": [
"items"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"items": {
"type": "array",
"description": "An array of custom roles",
"items": {
"$ref": "#/components/schemas/CustomRole"
}
},
"totalCount": {
"type": "integer",
"description": "The total number of custom roles"
}
}
},
"CustomWorkflowInput": {
"type": "object",
"required": [
"name"
],
"properties": {
"maintainerId": {
"description": "The ID of the workflow maintainer. Defaults to the workflow creator.",
"example": "12ab3c45de678910abc12345",
"$ref": "#/components/schemas/ObjectId"
},
"name": {
"type": "string",
"description": "The workflow name",
"example": "Progressive rollout starting in two days"
},
"description": {
"type": "string",
"description": "The workflow description",
"example": "Turn flag on for 10% of users each day"
},
"stages": {
"type": "array",
"description": "A list of the workflow stages",
"items": {
"$ref": "#/components/schemas/StageInput"
}
},
"templateKey": {
"type": "string",
"description": "The template key"
}
}
},
"CustomWorkflowMeta": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the workflow stage that required this approval request",
"example": "Example workflow name"
},
"stage": {
"description": "Details on the stage of the workflow where this approval request is required",
"$ref": "#/components/schemas/CustomWorkflowStageMeta"
}
}
},
"CustomWorkflowOutput": {
"type": "object",
"required": [
"_id",
"_version",
"_conflicts",
"_creationDate",
"_maintainerId",
"_links",
"name",
"_execution"
],
"properties": {
"_id": {
"type": "string",
"description": "The ID of the workflow",
"example": "12ab3c4d5ef1a2345bcde67f"
},
"_version": {
"type": "integer",
"description": "The version of the workflow",
"example": 1
},
"_conflicts": {
"type": "array",
"description": "Any conflicts that are present in the workflow stages",
"items": {
"$ref": "#/components/schemas/ConflictOutput"
}
},
"_creationDate": {
"description": "Timestamp of when the workflow was created",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"_maintainerId": {
"type": "string",
"description": "The member ID of the maintainer of the workflow. Defaults to the workflow creator.",
"example": "12ab3c45de678910abc12345"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"name": {
"type": "string",
"description": "The name of the workflow",
"example": "Progressive rollout starting in two days"
},
"description": {
"type": "string",
"description": "A brief description of the workflow",
"example": "Turn flag on for 10% of customers each day"
},
"kind": {
"type": "string",
"description": "The kind of workflow",
"example": "custom"
},
"stages": {
"type": "array",
"description": "The stages that make up the workflow. Each stage contains conditions and actions.",
"items": {
"$ref": "#/components/schemas/StageOutput"
}
},
"_execution": {
"description": "The current execution status of the workflow",
"example": "{\"status\": \"completed\"}",
"$ref": "#/components/schemas/ExecutionOutput"
},
"meta": {
"description": "For workflows being created from a workflow template, this value holds any parameters that could potentially be incompatible with the current project, environment, or flag",
"$ref": "#/components/schemas/WorkflowTemplateMetadata"
},
"templateKey": {
"type": "string",
"description": "For workflows being created from a workflow template, this value is the template's key",
"example": "example-workflow-template"
}
}
},
"CustomWorkflowStageMeta": {
"type": "object",
"properties": {
"index": {
"type": "integer",
"description": "The zero-based index of the workflow stage",
"example": 0
},
"name": {
"type": "string",
"description": "The name of the workflow stage",
"example": "Stage 1"
}
}
},
"CustomWorkflowsListingOutput": {
"type": "object",
"required": [
"items",
"totalCount",
"_links"
],
"properties": {
"items": {
"type": "array",
"description": "An array of workflows",
"items": {
"$ref": "#/components/schemas/CustomWorkflowOutput"
}
},
"totalCount": {
"type": "integer",
"description": "Total number of workflows",
"example": 1
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"DateVersion": {
"type": "integer"
},
"DefaultClientSideAvailability": {
"type": "object",
"required": [
"usingMobileKey",
"usingEnvironmentId"
],
"properties": {
"usingMobileKey": {
"type": "boolean",
"description": "Whether to enable availability for mobile SDKs",
"example": true
},
"usingEnvironmentId": {
"type": "boolean",
"description": "Whether to enable availability for client-side SDKs",
"example": true
}
}
},
"DefaultClientSideAvailabilityPost": {
"type": "object",
"required": [
"usingEnvironmentId",
"usingMobileKey"
],
"properties": {
"usingEnvironmentId": {
"type": "boolean",
"description": "Whether to enable availability for client-side SDKs.",
"example": true
},
"usingMobileKey": {
"type": "boolean",
"description": "Whether to enable availability for mobile SDKs.",
"example": true
}
}
},
"Defaults": {
"type": "object",
"required": [
"onVariation",
"offVariation"
],
"properties": {
"onVariation": {
"type": "integer",
"description": "The index, from the array of variations for this flag, of the variation to serve by default when targeting is on.",
"example": 0
},
"offVariation": {
"type": "integer",
"description": "The index, from the array of variations for this flag, of the variation to serve by default when targeting is off.",
"example": 1
}
}
},
"DependentExperimentListRep": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DependentExperimentRep"
}
},
"DependentExperimentRep": {
"type": "object",
"required": [
"key",
"name",
"environmentId",
"environmentKey",
"creationDate",
"_links"
],
"properties": {
"key": {
"type": "string",
"description": "The experiment key",
"example": "experiment-key-123abc"
},
"name": {
"type": "string",
"description": "The experiment name",
"example": "Example experiment"
},
"environmentId": {
"type": "string",
"description": "The environment ID",
"example": "1234a56b7c89d012345e678f"
},
"environmentKey": {
"type": "string",
"description": "The environment key",
"example": "production"
},
"creationDate": {
"description": "Timestamp of when the experiment was created",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"archivedDate": {
"description": "Timestamp of when the experiment was archived",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"parent": {
"href": "/api/v2/projects/my-project/environments/my-environment",
"type": "application/json"
},
"self": {
"href": "/api/v2/projects/my-project/environments/my-environment/experiments/example-experiment",
"type": "application/json"
}
}
}
}
},
"DependentFlag": {
"type": "object",
"required": [
"key",
"_links",
"_site"
],
"properties": {
"name": {
"type": "string",
"description": "The flag name",
"example": "Example dependent flag"
},
"key": {
"type": "string",
"description": "The flag key",
"example": "dependent-flag-key-123abc"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"_site": {
"description": "Details on how to access the dependent flag in the LaunchDarkly UI",
"example": "{ \"href\": \"/example-project/example-environment/features/example-dependent-flag\", \"type\": \"text/html\" }",
"$ref": "#/components/schemas/Link"
}
}
},
"DependentFlagEnvironment": {
"type": "object",
"required": [
"key",
"_links",
"_site"
],
"properties": {
"name": {
"type": "string",
"description": "The environment name",
"example": "Example environment"
},
"key": {
"type": "string",
"description": "The environment key",
"example": "environment-key-123abc"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"_site": {
"description": "Details on how to access the dependent flag in this environment in the LaunchDarkly UI",
"example": "{ \"href\": \"/example-project/example-environment/features/example-dependent-flag\", \"type\": \"text/html\" }",
"$ref": "#/components/schemas/Link"
}
}
},
"DependentFlagsByEnvironment": {
"type": "object",
"required": [
"items",
"_links",
"_site"
],
"properties": {
"items": {
"type": "array",
"description": "A list of dependent flags, which are flags that use the requested flag as a prerequisite",
"items": {
"$ref": "#/components/schemas/DependentFlag"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"_site": {
"description": "Details on how to access the prerequisite flag in the LaunchDarkly UI",
"example": "{ \"href\": \"/example-project/~/features/example-prereq-flag\", \"type\": \"text/html\" }",
"$ref": "#/components/schemas/Link"
}
}
},
"DependentMeasuredRolloutRep": {
"type": "object",
"required": [
"_id",
"flagKey",
"flagName",
"environmentKey",
"environmentName",
"status",
"creationDate",
"_links"
],
"properties": {
"_id": {
"type": "string",
"description": "The guarded rollout measured rollout Id",
"example": "885ccadf-181b-4a9a-8414-7ad6f7ba2db0"
},
"flagKey": {
"type": "string",
"description": "The guarded rollout flag key ",
"example": "my-flag"
},
"flagName": {
"type": "string",
"description": "The guarded rollout flag name ",
"example": "My Flag"
},
"flagPurpose": {
"type": "string",
"description": "The guarded rollout flag purpose",
"example": "migration"
},
"environmentKey": {
"type": "string",
"description": "The guarded rollout environment key",
"example": "production"
},
"environmentName": {
"type": "string",
"description": "The guarded rollout environment name",
"example": "Production"
},
"status": {
"type": "string",
"description": "The guarded rollout status",
"example": "monitoring"
},
"creationDate": {
"description": "Timestamp of when the guarded rollout was created",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"self": {
"href": "/api/v2/projects/my-project/flags/my-flag/environments/production/measured-rollouts/885ccadf-181b-4a9a-8414-7ad6f7ba2db0",
"type": "application/json"
}
}
}
}
},
"DependentMetricGroupRep": {
"type": "object",
"required": [
"key",
"name",
"kind",
"_links"
],
"properties": {
"key": {
"type": "string",
"description": "A unique key to reference the metric group",
"example": "metric-group-key-123abc"
},
"name": {
"type": "string",
"description": "A human-friendly name for the metric group",
"example": "My metric group"
},
"kind": {
"type": "string",
"description": "The type of the metric group",
"example": "funnel",
"enum": [
"funnel",
"standard",
"guardrail"
]
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"parent": {
"href": "/api/v2/projects/my-project",
"type": "application/json"
},
"self": {
"href": "/api/v2/projects/my-project/metric-groups/my-metric-group",
"type": "application/json"
}
}
}
}
},
"DependentMetricGroupRepWithMetrics": {
"type": "object",
"required": [
"key",
"name",
"kind",
"_links"
],
"properties": {
"key": {
"type": "string",
"description": "A unique key to reference the metric group",
"example": "metric-group-key-123abc"
},
"name": {
"type": "string",
"description": "A human-friendly name for the metric group",
"example": "My metric group"
},
"kind": {
"type": "string",
"description": "The type of the metric group",
"example": "funnel",
"enum": [
"funnel",
"standard",
"guardrail"
]
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"parent": {
"href": "/api/v2/projects/my-project",
"type": "application/json"
},
"self": {
"href": "/api/v2/projects/my-project/metric-groups/my-metric-group",
"type": "application/json"
}
}
},
"metrics": {
"type": "array",
"description": "The metrics in the metric group",
"items": {
"$ref": "#/components/schemas/MetricInGroupRep"
}
}
}
},
"DependentMetricOrMetricGroupRep": {
"type": "object",
"required": [
"key",
"_versionId",
"name",
"kind",
"_links",
"isGroup"
],
"properties": {
"key": {
"type": "string",
"description": "A unique key to reference the metric or metric group",
"example": "metric-key-123abc"
},
"_versionId": {
"type": "string",
"description": "The version ID of the metric or metric group"
},
"name": {
"type": "string",
"description": "A human-friendly name for the metric or metric group",
"example": "My metric"
},
"kind": {
"type": "string",
"description": "If this is a metric, then it represents the kind of event the metric tracks. If this is a metric group, then it represents the group type",
"example": "custom",
"enum": [
"pageview",
"click",
"custom",
"funnel",
"standard",
"guardrail"
]
},
"isNumeric": {
"type": "boolean",
"description": "For custom metrics, whether to track numeric changes in value against a baseline (true) or to track a conversion when an end user takes an action (false).",
"example": true
},
"eventKey": {
"type": "string",
"description": "The event key sent with the metric. Only relevant for custom metrics.",
"example": "event-key-123abc"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"self": {
"href": "/api/v2/metrics/my-project/my-metric",
"type": "application/json"
}
}
},
"isGroup": {
"type": "boolean",
"description": "Whether this is a metric group or a metric"
},
"metrics": {
"type": "array",
"description": "An ordered list of the metrics in this metric group",
"items": {
"$ref": "#/components/schemas/MetricInGroupRep"
}
}
}
},
"Destination": {
"type": "object",
"properties": {
"_id": {
"type": "string",
"description": "The ID of this Data Export destination",
"example": "610addeadbeefaa86ec9a7d4"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"parent": {
"href": "/api/v2/destinations",
"type": "application/json"
},
"self": {
"href": "/api/v2/destinations/my-project/my-environment/610addeadbeefaa86ec9a7d4",
"type": "application/json"
}
}
},
"name": {
"type": "string",
"description": "A human-readable name for your Data Export destination",
"example": "example-destination"
},
"kind": {
"type": "string",
"description": "The type of Data Export destination",
"example": "google-pubsub",
"enum": [
"google-pubsub",
"kinesis",
"mparticle",
"segment",
"azure-event-hubs",
"snowflake-v2",
"databricks",
"bigquery",
"redshift"
]
},
"version": {
"type": "number",
"example": 1
},
"config": {
"description": "An object with the configuration parameters required for the destination type",
"example": "{\"project\":\"test-prod\",\"topic\":\"ld-pubsub-test-192301\"}"
},
"on": {
"type": "boolean",
"description": "Whether the export is on, that is, the status of the integration",
"example": true
},
"_access": {
"description": "Details on the allowed and denied actions for this Data Export destination",
"$ref": "#/components/schemas/Access"
}
}
},
"DestinationPost": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A human-readable name for your Data Export destination",
"example": "example-destination"
},
"kind": {
"type": "string",
"description": "The type of Data Export destination",
"example": "google-pubsub",
"enum": [
"google-pubsub",
"kinesis",
"mparticle",
"segment",
"azure-event-hubs",
"snowflake-v2",
"databricks",
"bigquery",
"redshift"
]
},
"config": {
"description": "An object with the configuration parameters required for the destination type",
"example": "{\"project\":\"test-prod\",\"topic\":\"ld-pubsub-test-192301\"}"
},
"on": {
"type": "boolean",
"description": "Whether the export is on. Displayed as the integration status in the LaunchDarkly UI.",
"example": true
}
}
},
"Destinations": {
"type": "object",
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"self": {
"href": "/api/v2/destinations",
"type": "application/json"
}
}
},
"items": {
"type": "array",
"description": "An array of Data Export destinations",
"items": {
"$ref": "#/components/schemas/Destination"
}
}
}
},
"DurationUnit": {
"type": "string"
},
"DynamicOptions": {
"type": "object",
"properties": {
"endpoint": {
"$ref": "#/components/schemas/Endpoint"
},
"parser": {
"$ref": "#/components/schemas/DynamicOptionsParser"
}
}
},
"DynamicOptionsParser": {
"type": "object",
"properties": {
"optionsItems": {
"$ref": "#/components/schemas/OptionsArray"
},
"optionsPath": {
"type": "string"
}
}
},
"Endpoint": {
"type": "object",
"properties": {
"headers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/HeaderItems"
}
},
"hmacSignature": {
"$ref": "#/components/schemas/HMACSignature"
},
"method": {
"type": "string"
},
"url": {
"type": "string"
}
}
},
"Environment": {
"type": "object",
"required": [
"_links",
"_id",
"key",
"name",
"apiKey",
"mobileKey",
"color",
"defaultTtl",
"secureMode",
"defaultTrackEvents",
"requireComments",
"confirmChanges",
"tags",
"critical"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"self": {
"href": "/api/v2/projects/my-project/environments/my-environment",
"type": "application/json"
}
}
},
"_id": {
"type": "string",
"description": "The ID for the environment. Use this as the client-side ID for authorization in some client-side SDKs, and to associate LaunchDarkly environments with CDN integrations in edge SDKs.",
"example": "57be1db38b75bf0772d11384"
},
"key": {
"type": "string",
"description": "A project-unique key for the new environment",
"example": "environment-key-123abc"
},
"name": {
"type": "string",
"description": "A human-friendly name for the new environment",
"example": "My Environment"
},
"apiKey": {
"type": "string",
"description": "The SDK key for the environment. Use this for authorization in server-side SDKs.",
"example": "sdk-xxx"
},
"mobileKey": {
"type": "string",
"description": "The mobile key for the environment. Use this for authorization in mobile SDKs.",
"example": "mob-xxx"
},
"color": {
"type": "string",
"description": "The color used to indicate this environment in the UI",
"example": "F5A623"
},
"defaultTtl": {
"type": "integer",
"description": "The default time (in minutes) that the PHP SDK can cache feature flag rules locally",
"example": 5
},
"secureMode": {
"type": "boolean",
"description": "Ensures that one end user of the client-side SDK cannot inspect the variations for another end user",
"example": true
},
"_access": {
"$ref": "#/components/schemas/Access"
},
"defaultTrackEvents": {
"type": "boolean",
"description": "Enables tracking detailed information for new flags by default",
"example": false
},
"requireComments": {
"type": "boolean",
"description": "Whether members who modify flags and segments through the LaunchDarkly user interface are required to add a comment",
"example": true
},
"confirmChanges": {
"type": "boolean",
"description": "Whether members who modify flags and segments through the LaunchDarkly user interface are required to confirm those changes",
"example": true
},
"tags": {
"type": "array",
"description": "A list of tags for this environment",
"items": {
"type": "string"
},
"example": [
"ops"
]
},
"approvalSettings": {
"description": "Details on the approval settings for this environment",
"$ref": "#/components/schemas/ApprovalSettings"
},
"resourceApprovalSettings": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/ApprovalSettings"
},
"description": "Details on the approval settings for this environment for each resource kind"
},
"critical": {
"type": "boolean",
"description": "Whether the environment is critical",
"example": true
}
}
},
"EnvironmentPost": {
"type": "object",
"required": [
"name",
"key",
"color"
],
"properties": {
"name": {
"type": "string",
"description": "A human-friendly name for the new environment",
"example": "My Environment"
},
"key": {
"type": "string",
"description": "A project-unique key for the new environment",
"example": "environment-key-123abc"
},
"color": {
"type": "string",
"description": "A color to indicate this environment in the UI",
"example": "F5A623"
},
"defaultTtl": {
"type": "integer",
"description": "The default time (in minutes) that the PHP SDK can cache feature flag rules locally",
"example": 5
},
"secureMode": {
"type": "boolean",
"description": "Ensures that one end user of the client-side SDK cannot inspect the variations for another end user",
"example": true
},
"defaultTrackEvents": {
"type": "boolean",
"description": "Enables tracking detailed information for new flags by default",
"example": false
},
"confirmChanges": {
"type": "boolean",
"description": "Requires confirmation for all flag and segment changes via the UI in this environment",
"example": false
},
"requireComments": {
"type": "boolean",
"description": "Requires comments for all flag and segment changes via the UI in this environment",
"example": false
},
"tags": {
"type": "array",
"description": "Tags to apply to the new environment",
"items": {
"type": "string"
},
"example": [
"ops"
]
},
"source": {
"description": "Indicates that the new environment created will be cloned from the provided source environment",
"$ref": "#/components/schemas/SourceEnv"
},
"critical": {
"type": "boolean",
"description": "Whether the environment is critical",
"example": true
}
}
},
"EnvironmentSummary": {
"type": "object",
"required": [
"_links",
"key",
"name",
"color"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"self": {
"href": "/api/v2/projects/my-project/environments/my-environment",
"type": "application/json"
}
}
},
"key": {
"type": "string",
"description": "A project-unique key for the environment",
"example": "environment-key-123abc"
},
"name": {
"type": "string",
"description": "A human-friendly name for the environment",
"example": "My Environment"
},
"color": {
"type": "string",
"description": "The color used to indicate this environment in the UI",
"example": "F5A623"
}
}
},
"Environments": {
"type": "object",
"required": [
"items"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"totalCount": {
"type": "integer",
"description": "The number of environments returned",
"example": 2
},
"items": {
"type": "array",
"description": "An array of environments",
"items": {
"$ref": "#/components/schemas/Environment"
}
}
}
},
"EvaluationReason": {
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"type": "string",
"description": "Describes the general reason that LaunchDarkly selected this variation.",
"example": "OFF"
},
"ruleIndex": {
"type": "integer",
"description": "The positional index of the matching rule if the kind is 'RULE_MATCH'. The index is 0-based.",
"example": 3
},
"ruleID": {
"type": "string",
"description": "The unique identifier of the matching rule if the kind is 'RULE_MATCH'.",
"example": "1234567890"
},
"prerequisiteKey": {
"type": "string",
"description": "The key of the flag that failed if the kind is 'PREREQUISITE_FAILED'.",
"example": "someotherflagkey"
},
"inExperiment": {
"type": "boolean",
"description": "Indicates whether the evaluation occurred as part of an experiment.",
"example": true
},
"errorKind": {
"type": "string",
"description": "The specific error type if the kind is 'ERROR'.",
"example": "USER_NOT_SPECIFIED"
}
}
},
"EventFilter": {
"type": "object",
"required": [
"type",
"op",
"values",
"negate"
],
"properties": {
"type": {
"type": "string",
"description": "Filter type. One of [contextAttribute, eventProperty, group]",
"example": "contextAttribute"
},
"attribute": {
"type": "string",
"description": "If not a group node, the context attribute name or event property name to filter on",
"example": "country"
},
"op": {
"description": "The function to perform",
"example": "in",
"$ref": "#/components/schemas/Operator"
},
"values": {
"type": "array",
"description": "The context attribute / event property values or group member nodes. Numeric values must not exceed 14 decimal places.",
"items": {},
"example": [
"JP"
]
},
"contextKind": {
"type": "string",
"description": "For context attribute filters, the context kind.",
"example": "user"
},
"negate": {
"type": "boolean",
"description": "If set, then take the inverse of the operator. 'in' becomes 'not in'.",
"example": false
}
}
},
"ExecutionOutput": {
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"type": "string",
"description": "The status of the execution of this workflow stage",
"example": "completed"
},
"stopDate": {
"description": "Timestamp of when the workflow was completed.",
"example": "1718467200000",
"$ref": "#/components/schemas/UnixMillis"
}
}
},
"ExpandableApprovalRequestResponse": {
"type": "object",
"required": [
"_id",
"_version",
"creationDate",
"serviceKind",
"reviewStatus",
"allReviews",
"notifyMemberIds",
"status",
"instructions",
"conflicts",
"_links"
],
"properties": {
"_id": {
"type": "string",
"description": "The ID of this approval request",
"example": "12ab3c45de678910abc12345"
},
"_version": {
"type": "integer",
"description": "Version of the approval request",
"example": 1
},
"creationDate": {
"description": "Timestamp of when the approval request was created",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"serviceKind": {
"description": "The approval service for this request. May be LaunchDarkly or an external approval service, such as ServiceNow or JIRA.",
"example": "launchdarkly",
"$ref": "#/components/schemas/ApprovalRequestServiceKind"
},
"requestorId": {
"type": "string",
"description": "The ID of the member who requested the approval",
"example": "12ab3c45de678910abc12345"
},
"description": {
"type": "string",
"description": "A human-friendly name for the approval request",
"example": "example: request approval from someone"
},
"reviewStatus": {
"type": "string",
"description": "Current status of the review of this approval request",
"example": "pending",
"enum": [
"approved",
"declined",
"pending"
]
},
"allReviews": {
"type": "array",
"description": "An array of individual reviews of this approval request",
"items": {
"$ref": "#/components/schemas/ReviewResponse"
}
},
"notifyMemberIds": {
"type": "array",
"description": "An array of member IDs. These members are notified to review the approval request.",
"items": {
"type": "string"
},
"example": [
"1234a56b7c89d012345e678f"
]
},
"appliedDate": {
"description": "Timestamp of when the approval request was applied",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"appliedByMemberId": {
"type": "string",
"description": "The member ID of the member who applied the approval request",
"example": "1234a56b7c89d012345e678f"
},
"appliedByServiceTokenId": {
"type": "string",
"description": "The service token ID of the service token which applied the approval request",
"example": "1234a56b7c89d012345e678f"
},
"status": {
"type": "string",
"description": "Current status of the approval request",
"example": "pending",
"enum": [
"pending",
"completed",
"failed",
"scheduled"
]
},
"instructions": {
"description": "List of instructions in semantic patch format to be applied to the feature flag",
"example": "[{\"kind\": \"turnFlagOn\"}]",
"$ref": "#/components/schemas/Instructions"
},
"conflicts": {
"type": "array",
"description": "Details on any conflicting approval requests",
"items": {
"$ref": "#/components/schemas/Conflict"
}
},
"_links": {
"type": "object",
"additionalProperties": {},
"description": "The location and content type of related resources"
},
"executionDate": {
"description": "Timestamp for when instructions will be executed",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"operatingOnId": {
"type": "string",
"description": "ID of scheduled change to edit or delete",
"example": "12ab3c45de678910abc12345"
},
"integrationMetadata": {
"description": "Details about the object in an external service corresponding to this approval request, such as a ServiceNow change request or a JIRA ticket, if an external approval service is being used",
"$ref": "#/components/schemas/IntegrationMetadata"
},
"source": {
"description": "Details about the source feature flag, if copied",
"$ref": "#/components/schemas/CopiedFromEnv"
},
"customWorkflowMetadata": {
"description": "Details about the custom workflow, if this approval request is part of a custom workflow",
"$ref": "#/components/schemas/CustomWorkflowMeta"
},
"resourceId": {
"type": "string",
"description": "String representation of a resource"
},
"approvalSettings": {
"description": "The settings for this approval",
"$ref": "#/components/schemas/ApprovalSettings"
},
"project": {
"description": "Project the approval request belongs to",
"$ref": "#/components/schemas/Project"
},
"environments": {
"type": "array",
"description": "List of environments the approval impacts",
"items": {
"$ref": "#/components/schemas/Environment"
}
},
"flag": {
"description": "Flag the approval request belongs to",
"$ref": "#/components/schemas/ExpandedFlagRep"
},
"resource": {
"description": "Resource the approval request belongs to",
"$ref": "#/components/schemas/ExpandedResourceRep"
}
}
},
"ExpandableApprovalRequestsResponse": {
"type": "object",
"required": [
"items",
"totalCount",
"_links"
],
"properties": {
"items": {
"type": "array",
"description": "An array of approval requests",
"items": {
"$ref": "#/components/schemas/ExpandableApprovalRequestResponse"
}
},
"totalCount": {
"type": "integer",
"description": "Total number of approval requests",
"example": 1
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"ExpandedFlagRep": {
"type": "object",
"required": [
"name",
"kind",
"key",
"_version",
"creationDate",
"variations",
"temporary",
"tags",
"_links",
"customProperties",
"archived"
],
"properties": {
"name": {
"type": "string",
"description": "A human-friendly name for the feature flag",
"example": "My Flag"
},
"kind": {
"type": "string",
"description": "Kind of feature flag",
"example": "boolean",
"enum": [
"boolean",
"multivariate"
]
},
"description": {
"type": "string",
"description": "Description of the feature flag",
"example": "This flag controls the example widgets"
},
"key": {
"type": "string",
"description": "A unique key used to reference the flag in your code",
"example": "flag-key-123abc"
},
"_version": {
"type": "integer",
"description": "Version of the feature flag",
"example": 1
},
"creationDate": {
"description": "Timestamp of flag creation date",
"example": "1494437420312",
"$ref": "#/components/schemas/UnixMillis"
},
"includeInSnippet": {
"type": "boolean",
"description": "Deprecated, use clientSideAvailability. Whether this flag should be made available to the client-side JavaScript SDK",
"example": true,
"deprecated": true
},
"clientSideAvailability": {
"description": "Which type of client-side SDKs the feature flag is available to",
"example": "{\"usingMobileKey\":true,\"usingEnvironmentId\":false}",
"$ref": "#/components/schemas/ClientSideAvailability"
},
"variations": {
"type": "array",
"description": "An array of possible variations for the flag",
"items": {
"$ref": "#/components/schemas/Variation"
},
"example": [
{
"_id": "e432f62b-55f6-49dd-a02f-eb24acf39d05",
"value": true
},
{
"_id": "a00bf58d-d252-476c-b915-15a74becacb4",
"value": false
}
]
},
"temporary": {
"type": "boolean",
"description": "Whether the flag is a temporary flag",
"example": true
},
"tags": {
"type": "array",
"description": "Tags for the feature flag",
"items": {
"type": "string"
},
"example": [
"example-tag"
]
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"parent": {
"href": "/api/v2/flags/my-project",
"type": "application/json"
},
"self": {
"href": "/api/v2/flags/my-project/my-flag",
"type": "application/json"
}
}
},
"maintainerId": {
"type": "string",
"description": "The ID of the member who maintains the flag",
"example": "569f183514f4432160000007"
},
"_maintainer": {
"description": "Details on the member who maintains this feature flag",
"$ref": "#/components/schemas/MemberSummary"
},
"customProperties": {
"description": "Metadata attached to the feature flag, in the form of the property key associated with a name and array of values for the metadata to associate with this flag. Typically used to store data related to an integration.",
"example": "{\"jira.issues\":{\"name\":\"Jira issues\",\"value\":[\"is-123\",\"is-456\"]}}",
"$ref": "#/components/schemas/CustomProperties"
},
"archived": {
"type": "boolean",
"description": "Boolean indicating if the feature flag is archived",
"example": false
},
"archivedDate": {
"description": "If archived is true, date of archive",
"example": "1494437420312",
"$ref": "#/components/schemas/UnixMillis"
},
"defaults": {
"description": "The indices, from the array of variations, for the variations to serve by default when targeting is on and when targeting is off. These variations will be used for this flag in new environments. If omitted, the first and last variation will be used.",
"example": "{\"onVariation\":0,\"offVariation\":1}",
"$ref": "#/components/schemas/Defaults"
}
}
},
"ExpandedResourceRep": {
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"type": "string",
"description": "The type of resource",
"example": "flag"
},
"aiConfig": {
"$ref": "#/components/schemas/AIConfigRep"
},
"flag": {
"$ref": "#/components/schemas/ExpandedFlagRep"
},
"segment": {
"$ref": "#/components/schemas/UserSegment"
}
}
},
"Experiment": {
"type": "object",
"required": [
"key",
"name",
"_maintainerId",
"_creationDate",
"environmentKey",
"_links"
],
"properties": {
"_id": {
"type": "string",
"description": "The experiment ID",
"example": "12ab3c45de678910fgh12345"
},
"key": {
"type": "string",
"description": "The experiment key",
"example": "experiment-key-123abc"
},
"name": {
"type": "string",
"description": "The experiment name",
"example": "Example experiment"
},
"description": {
"type": "string",
"description": "The experiment description",
"example": "An example experiment, used in testing"
},
"_maintainerId": {
"type": "string",
"description": "The ID of the member who maintains this experiment.",
"example": "12ab3c45de678910fgh12345"
},
"_creationDate": {
"description": "Timestamp of when the experiment was created",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"environmentKey": {
"type": "string"
},
"archivedDate": {
"description": "Timestamp of when the experiment was archived",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"tags": {
"type": "array",
"description": "Tags for the experiment",
"items": {
"type": "string"
},
"example": [
"experiment",
"feature"
]
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"parent": {
"href": "/api/v2/projects/my-project/environments/my-environment",
"type": "application/json"
},
"self": {
"href": "/api/v2/projects/my-project/environments/my-environment/experiments/my-experiment",
"type": "application/json"
}
}
},
"holdoutId": {
"type": "string",
"description": "The holdout ID",
"example": "f3b74309-d581-44e1-8a2b-bb2933b4fe40"
},
"currentIteration": {
"description": "Details on the current iteration",
"$ref": "#/components/schemas/IterationRep"
},
"draftIteration": {
"description": "Details on the current iteration. This iteration may be already started, or may still be a draft.",
"$ref": "#/components/schemas/IterationRep"
},
"previousIterations": {
"type": "array",
"description": "Details on the previous iterations for this experiment.",
"items": {
"$ref": "#/components/schemas/IterationRep"
}
}
}
},
"ExperimentAllocationRep": {
"type": "object",
"required": [
"defaultVariation",
"canReshuffle"
],
"properties": {
"defaultVariation": {
"type": "integer"
},
"canReshuffle": {
"type": "boolean"
}
}
},
"ExperimentCollectionRep": {
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"description": "An array of experiments",
"items": {
"$ref": "#/components/schemas/Experiment"
}
},
"total_count": {
"type": "integer",
"description": "The total number of experiments in this project and environment. Does not include legacy experiments."
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"ExperimentEnabledPeriodRep": {
"type": "object",
"properties": {
"startDate": {
"$ref": "#/components/schemas/UnixMillis"
},
"stopDate": {
"$ref": "#/components/schemas/UnixMillis"
}
}
},
"ExperimentEnvironmentSettingRep": {
"type": "object",
"properties": {
"startDate": {
"$ref": "#/components/schemas/UnixMillis"
},
"stopDate": {
"$ref": "#/components/schemas/UnixMillis"
},
"enabledPeriods": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ExperimentEnabledPeriodRep"
}
}
}
},
"ExperimentInfoRep": {
"type": "object",
"required": [
"baselineIdx",
"items"
],
"properties": {
"baselineIdx": {
"type": "integer"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LegacyExperimentRep"
}
}
}
},
"ExperimentPatchInput": {
"type": "object",
"required": [
"instructions"
],
"properties": {
"comment": {
"type": "string",
"description": "Optional comment describing the update",
"example": "Optional comment"
},
"instructions": {
"description": "The instructions to perform when updating. This should be an array with objects that look like {\"kind\": \"update_action\"}. Some instructions also require a value field in the array element.",
"example": "[{\"kind\": \"updateName\", \"value\": \"Updated experiment name\"}]",
"$ref": "#/components/schemas/Instructions"
}
}
},
"ExperimentPost": {
"type": "object",
"required": [
"name",
"key",
"iteration"
],
"properties": {
"name": {
"type": "string",
"description": "The experiment name",
"example": "Example experiment"
},
"description": {
"type": "string",
"description": "The experiment description",
"example": "An example experiment, used in testing"
},
"maintainerId": {
"type": "string",
"description": "The ID of the member who maintains this experiment",
"example": "12ab3c45de678910fgh12345"
},
"key": {
"type": "string",
"description": "The experiment key",
"example": "experiment-key-123abc"
},
"iteration": {
"description": "Details on the construction of the initial iteration",
"$ref": "#/components/schemas/IterationInput"
},
"holdoutId": {
"type": "string",
"description": "The ID of the holdout",
"example": "f3b74309-d581-44e1-8a2b-bb2933b4fe40"
},
"tags": {
"type": "array",
"description": "Tags for the experiment",
"items": {
"type": "string"
}
}
}
},
"ExpiringTarget": {
"type": "object",
"required": [
"_id",
"_version",
"expirationDate",
"contextKind",
"contextKey",
"_resourceId"
],
"properties": {
"_id": {
"type": "string",
"description": "The ID of this expiring target",
"example": "12ab3c45de678910abc12345"
},
"_version": {
"type": "integer",
"description": "The version of this expiring target",
"example": 1
},
"expirationDate": {
"description": "A timestamp for when the target expires",
"example": "1672358400000",
"$ref": "#/components/schemas/UnixMillis"
},
"contextKind": {
"type": "string",
"description": "The context kind of the context to be removed",
"example": "user"
},
"contextKey": {
"type": "string",
"description": "A unique key used to represent the context to be removed",
"example": "context-key-123abc"
},
"targetType": {
"type": "string",
"description": "A segment's target type, included or excluded. Included when expiring targets are updated on a segment.",
"example": "included"
},
"variationId": {
"type": "string",
"description": "A unique ID used to represent the flag variation. Included when expiring targets are updated on a feature flag.",
"example": "cc4332e2-bd4d-4fe0-b509-dfd2caf8dd73"
},
"_resourceId": {
"description": "Details on the segment or flag this expiring target belongs to, its environment, and its project",
"$ref": "#/components/schemas/ResourceId"
}
}
},
"ExpiringTargetError": {
"type": "object",
"required": [
"instructionIndex",
"message"
],
"properties": {
"instructionIndex": {
"type": "integer",
"description": "The index of the PATCH instruction where the error occurred",
"example": 1
},
"message": {
"type": "string",
"description": "The error message related to a failed PATCH instruction",
"example": "example error message"
}
}
},
"ExpiringTargetGetResponse": {
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"description": "A list of expiring targets",
"items": {
"$ref": "#/components/schemas/ExpiringTarget"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"ExpiringTargetPatchResponse": {
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"description": "A list of the results from each instruction",
"items": {
"$ref": "#/components/schemas/ExpiringTarget"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"totalInstructions": {
"type": "integer"
},
"successfulInstructions": {
"type": "integer"
},
"failedInstructions": {
"type": "integer"
},
"errors": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ExpiringTargetError"
}
}
}
},
"ExpiringUserTargetGetResponse": {
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"description": "An array of expiring user targets",
"items": {
"$ref": "#/components/schemas/ExpiringUserTargetItem"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"ExpiringUserTargetItem": {
"type": "object",
"required": [
"_id",
"_version",
"expirationDate",
"userKey",
"_resourceId"
],
"properties": {
"_id": {
"type": "string",
"description": "The ID of this expiring user target",
"example": "12ab3c45de678910fgh12345"
},
"_version": {
"type": "integer",
"description": "The version of this expiring user target",
"example": 1
},
"expirationDate": {
"description": "A timestamp for when the user target expires",
"example": "1658192820000",
"$ref": "#/components/schemas/UnixMillis"
},
"userKey": {
"type": "string",
"description": "A unique key used to represent the user",
"example": "example-user-key"
},
"targetType": {
"type": "string",
"description": "A segment's target type. Included when expiring user targets are updated on a segment.",
"example": "included"
},
"variationId": {
"type": "string",
"description": "A unique key used to represent the flag variation. Included when expiring user targets are updated on a feature flag.",
"example": "ce67d625-a8b9-4fb5-a344-ab909d9d4f4d"
},
"_resourceId": {
"description": "Details on the resource from which the user is expiring",
"$ref": "#/components/schemas/ResourceIDResponse"
}
}
},
"ExpiringUserTargetPatchResponse": {
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"description": "An array of expiring user targets",
"items": {
"$ref": "#/components/schemas/ExpiringUserTargetItem"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"totalInstructions": {
"type": "integer",
"description": "The total count of instructions sent in the PATCH request",
"example": 1
},
"successfulInstructions": {
"type": "integer",
"description": "The total count of successful instructions sent in the PATCH request",
"example": 1
},
"failedInstructions": {
"type": "integer",
"description": "The total count of the failed instructions sent in the PATCH request",
"example": 0
},
"errors": {
"type": "array",
"description": "An array of error messages for the failed instructions",
"items": {
"$ref": "#/components/schemas/ExpiringTargetError"
}
}
}
},
"Export": {
"type": "object",
"required": [
"id",
"segmentKey",
"creationTime",
"status",
"sizeBytes",
"size",
"initiator",
"_links"
],
"properties": {
"id": {
"type": "string",
"description": "The export ID",
"example": "1234a567-bcd8-9123-4567-abcd1234567f"
},
"segmentKey": {
"type": "string",
"description": "The segment key",
"example": "example-big-segment"
},
"creationTime": {
"description": "Timestamp of when this export was created",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"status": {
"type": "string",
"description": "The export status",
"example": "complete"
},
"sizeBytes": {
"type": "integer",
"format": "int64",
"description": "The export size, in bytes",
"example": 18
},
"size": {
"type": "string",
"description": "The export size, with units",
"example": "18 B"
},
"initiator": {
"description": "Details on the member who initiated the export",
"example": "{\"name\": \"Ariel Flores\", \"email\": \"ariel@acme.com\"}",
"$ref": "#/components/schemas/InitiatorRep"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources, including the location of the exported file"
}
}
},
"Extinction": {
"type": "object",
"required": [
"revision",
"message",
"time",
"flagKey",
"projKey"
],
"properties": {
"revision": {
"type": "string",
"description": "The identifier for the revision where flag became extinct. For example, a commit SHA.",
"example": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"
},
"message": {
"type": "string",
"description": "Description of the extinction. For example, the commit message for the revision.",
"example": "Remove flag for launched feature"
},
"time": {
"description": "Time of extinction",
"example": "1636558831870",
"$ref": "#/components/schemas/UnixMillis"
},
"flagKey": {
"type": "string",
"description": "The feature flag key",
"example": "enable-feature"
},
"projKey": {
"type": "string",
"description": "The project key",
"example": "default"
}
}
},
"ExtinctionCollectionRep": {
"type": "object",
"required": [
"_links",
"items"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"items": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Extinction"
}
},
"description": "An array of extinction events"
}
}
},
"ExtinctionListPost": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Extinction"
}
},
"FeatureFlag": {
"type": "object",
"required": [
"name",
"kind",
"key",
"_version",
"creationDate",
"variations",
"temporary",
"tags",
"_links",
"experiments",
"customProperties",
"archived"
],
"properties": {
"name": {
"type": "string",
"description": "A human-friendly name for the feature flag",
"example": "My Flag"
},
"kind": {
"type": "string",
"description": "Kind of feature flag",
"example": "boolean",
"enum": [
"boolean",
"multivariate"
]
},
"description": {
"type": "string",
"description": "Description of the feature flag",
"example": "This flag controls the example widgets"
},
"key": {
"type": "string",
"description": "A unique key used to reference the flag in your code",
"example": "flag-key-123abc"
},
"_version": {
"type": "integer",
"description": "Version of the feature flag",
"example": 1
},
"creationDate": {
"description": "Timestamp of flag creation date",
"example": "1494437420312",
"$ref": "#/components/schemas/UnixMillis"
},
"includeInSnippet": {
"type": "boolean",
"description": "Deprecated, use clientSideAvailability. Whether this flag should be made available to the client-side JavaScript SDK",
"example": true,
"deprecated": true
},
"clientSideAvailability": {
"description": "Which type of client-side SDKs the feature flag is available to",
"example": "{\"usingMobileKey\":true,\"usingEnvironmentId\":false}",
"$ref": "#/components/schemas/ClientSideAvailability"
},
"variations": {
"type": "array",
"description": "An array of possible variations for the flag",
"items": {
"$ref": "#/components/schemas/Variation"
},
"example": [
{
"_id": "e432f62b-55f6-49dd-a02f-eb24acf39d05",
"value": true
},
{
"_id": "a00bf58d-d252-476c-b915-15a74becacb4",
"value": false
}
]
},
"temporary": {
"type": "boolean",
"description": "Whether the flag is a temporary flag",
"example": true
},
"tags": {
"type": "array",
"description": "Tags for the feature flag",
"items": {
"type": "string"
},
"example": [
"example-tag"
]
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"parent": {
"href": "/api/v2/flags/my-project",
"type": "application/json"
},
"self": {
"href": "/api/v2/flags/my-project/my-flag",
"type": "application/json"
}
}
},
"maintainerId": {
"type": "string",
"description": "Associated maintainerId for the feature flag",
"example": "569f183514f4432160000007"
},
"_maintainer": {
"description": "Associated maintainer member info for the feature flag",
"$ref": "#/components/schemas/MemberSummary"
},
"maintainerTeamKey": {
"type": "string",
"description": "The key of the associated team that maintains this feature flag",
"example": "team-1"
},
"_maintainerTeam": {
"description": "Associated maintainer team info for the feature flag",
"$ref": "#/components/schemas/MaintainerTeam"
},
"goalIds": {
"type": "array",
"description": "Deprecated, use experiments instead",
"items": {
"type": "string"
},
"example": [],
"deprecated": true
},
"experiments": {
"description": "Experimentation data for the feature flag",
"example": "{\"baselineIdx\": 0,\"items\": []}",
"$ref": "#/components/schemas/ExperimentInfoRep"
},
"customProperties": {
"description": "Metadata attached to the feature flag, in the form of the property key associated with a name and array of values for the metadata to associate with this flag. Typically used to store data related to an integration.",
"example": "{\"jira.issues\":{\"name\":\"Jira issues\",\"value\":[\"is-123\",\"is-456\"]}}",
"$ref": "#/components/schemas/CustomProperties"
},
"archived": {
"type": "boolean",
"description": "Boolean indicating if the feature flag is archived",
"example": false
},
"archivedDate": {
"description": "If archived is true, date of archive",
"example": "1494437420312",
"$ref": "#/components/schemas/UnixMillis"
},
"deprecated": {
"type": "boolean",
"description": "Boolean indicating if the feature flag is deprecated",
"example": false
},
"deprecatedDate": {
"description": "If deprecated is true, date of deprecation",
"example": "1494437420312",
"$ref": "#/components/schemas/UnixMillis"
},
"defaults": {
"description": "The indices, from the array of variations, for the variations to serve by default when targeting is on and when targeting is off. These variations will be used for this flag in new environments. If omitted, the first and last variation will be used.",
"example": "{\"onVariation\":0,\"offVariation\":1}",
"$ref": "#/components/schemas/Defaults"
},
"_purpose": {
"type": "string"
},
"migrationSettings": {
"description": "Migration-related settings for the flag",
"$ref": "#/components/schemas/FlagMigrationSettingsRep"
},
"environments": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/FeatureFlagConfig"
},
"description": "Details on the environments for this flag. Only returned if the request is filtered by environment, using the filterEnv query parameter.",
"example": {
"my-environment": {
"_environmentName": "My Environment",
"_site": {
"href": "/default/my-environment/features/client-side-flag",
"type": "text/html"
},
"_summary": {
"prerequisites": 0,
"variations": {
"0": {
"contextTargets": 1,
"isFallthrough": true,
"nullRules": 0,
"rules": 0,
"targets": 1
},
"1": {
"isOff": true,
"nullRules": 0,
"rules": 0,
"targets": 0
}
}
},
"archived": false,
"contextTargets": [
{
"contextKind": "device",
"values": [
"device-key-123abc"
],
"variation": 0
}
],
"fallthrough": {
"variation": 0
},
"lastModified": 1627071171347,
"offVariation": 1,
"on": false,
"prerequisites": [],
"rules": [],
"salt": "61eddeadbeef4da1facecafe3a60a397",
"sel": "810edeadbeef4844facecafe438f2999492",
"targets": [
{
"contextKind": "user",
"values": [
"user-key-123abc"
],
"variation": 0
}
],
"trackEvents": false,
"trackEventsFallthrough": false,
"version": 1
}
}
}
}
},
"FeatureFlagBody": {
"type": "object",
"required": [
"name",
"key"
],
"properties": {
"name": {
"type": "string",
"description": "A human-friendly name for the feature flag",
"example": "My flag"
},
"key": {
"type": "string",
"description": "A unique key used to reference the flag in your code",
"example": "flag-key-123abc"
},
"description": {
"type": "string",
"description": "Description of the feature flag. Defaults to an empty string.",
"example": "This flag controls the example widgets"
},
"includeInSnippet": {
"type": "boolean",
"description": "Deprecated, use clientSideAvailability. Whether this flag should be made available to the client-side JavaScript SDK. Defaults to false.",
"deprecated": true
},
"clientSideAvailability": {
"description": "Which type of client-side SDKs the feature flag is available to",
"example": "{\"usingMobileKey\":true,\"usingEnvironmentId\":false}",
"$ref": "#/components/schemas/ClientSideAvailabilityPost"
},
"variations": {
"type": "array",
"description": "An array of possible variations for the flag. The variation values must be unique. If omitted, two boolean variations of true and false will be used.",
"items": {
"$ref": "#/components/schemas/Variation"
},
"example": [
{
"value": true
},
{
"value": false
}
]
},
"temporary": {
"type": "boolean",
"description": "Whether the flag is a temporary flag. Defaults to true.",
"example": false
},
"tags": {
"type": "array",
"description": "Tags for the feature flag. Defaults to an empty array.",
"items": {
"type": "string"
},
"example": [
"example-tag"
]
},
"customProperties": {
"description": "Metadata attached to the feature flag, in the form of the property key associated with a name and array of values for the metadata to associate with this flag. Typically used to store data related to an integration.",
"example": "{ \"jira.issues\": {\"name\": \"Jira issues\", \"value\": [\"is-123\", \"is-456\"]} }",
"$ref": "#/components/schemas/CustomProperties"
},
"defaults": {
"description": "The indices, from the array of variations, for the variations to serve by default when targeting is on and when targeting is off. These variations will be used for this flag in new environments. If omitted, the first and last variation will be used.",
"example": "{\"onVariation\":0, \"offVariation\":1}",
"$ref": "#/components/schemas/Defaults"
},
"purpose": {
"type": "string",
"description": "Purpose of the flag",
"example": "migration",
"enum": [
"migration",
"holdout"
]
},
"migrationSettings": {
"description": "Settings relevant to flags where purpose is migration",
"$ref": "#/components/schemas/MigrationSettingsPost"
},
"maintainerId": {
"type": "string",
"description": "The ID of the member who maintains this feature flag",
"example": "12ab3c45de678910fgh12345"
},
"maintainerTeamKey": {
"type": "string",
"description": "The key of the team that maintains this feature flag",
"example": "team-1"
},
"initialPrerequisites": {
"type": "array",
"description": "Initial set of prerequisite flags for all environments",
"items": {
"$ref": "#/components/schemas/FlagPrerequisitePost"
}
},
"isFlagOn": {
"type": "boolean",
"description": "Whether to automatically turn the flag on across all environments at creation. Defaults to false."
}
}
},
"FeatureFlagConfig": {
"type": "object",
"required": [
"on",
"archived",
"salt",
"sel",
"lastModified",
"version",
"_site",
"_environmentName",
"trackEvents",
"trackEventsFallthrough"
],
"properties": {
"on": {
"type": "boolean",
"description": "Whether the flag is on"
},
"archived": {
"type": "boolean",
"description": "Boolean indicating if the feature flag is archived"
},
"salt": {
"type": "string"
},
"sel": {
"type": "string"
},
"lastModified": {
"description": "Timestamp of when the flag configuration was most recently modified",
"$ref": "#/components/schemas/UnixMillis"
},
"version": {
"type": "integer",
"description": "Version of the feature flag"
},
"targets": {
"type": "array",
"description": "An array of the individual targets that will receive a specific variation based on their key. Individual targets with a context kind of 'user' are included here.",
"items": {
"$ref": "#/components/schemas/Target"
}
},
"contextTargets": {
"type": "array",
"description": "An array of the individual targets that will receive a specific variation based on their key. Individual targets with context kinds other than 'user' are included here.",
"items": {
"$ref": "#/components/schemas/Target"
}
},
"rules": {
"type": "array",
"description": "An array of the rules for how to serve a variation to specific targets based on their attributes",
"items": {
"$ref": "#/components/schemas/Rule"
}
},
"fallthrough": {
"description": "Details on the variation or rollout to serve as part of the flag's default rule",
"$ref": "#/components/schemas/VariationOrRolloutRep"
},
"offVariation": {
"type": "integer",
"description": "The ID of the variation to serve when the flag is off"
},
"prerequisites": {
"type": "array",
"description": "An array of the prerequisite flags and their variations that are required before this flag takes effect",
"items": {
"$ref": "#/components/schemas/Prerequisite"
}
},
"_site": {
"description": "Details on how to access the flag configuration in the LaunchDarkly UI",
"$ref": "#/components/schemas/Link"
},
"_access": {
"description": "Details on the allowed and denied actions for this flag",
"$ref": "#/components/schemas/Access"
},
"_environmentName": {
"type": "string",
"description": "The environment name"
},
"trackEvents": {
"type": "boolean",
"description": "Whether LaunchDarkly tracks events for the feature flag, for all rules"
},
"trackEventsFallthrough": {
"type": "boolean",
"description": "Whether LaunchDarkly tracks events for the feature flag, for the default rule"
},
"_debugEventsUntilDate": {
"$ref": "#/components/schemas/UnixMillis"
},
"_summary": {
"description": "A summary of the prerequisites and variations for this flag",
"$ref": "#/components/schemas/FlagSummary"
},
"evaluation": {
"description": "Evaluation information for the flag",
"$ref": "#/components/schemas/FlagConfigEvaluation"
},
"migrationSettings": {
"description": "Migration-related settings for the flag configuration",
"$ref": "#/components/schemas/FlagConfigMigrationSettingsRep"
}
}
},
"FeatureFlagScheduledChange": {
"type": "object",
"required": [
"_id",
"_creationDate",
"_maintainerId",
"_version",
"executionDate",
"instructions"
],
"properties": {
"_id": {
"description": "The ID of this scheduled change",
"example": "12ab3c45de678910abc12345",
"$ref": "#/components/schemas/FeatureWorkflowId"
},
"_creationDate": {
"description": "Timestamp of when the scheduled change was created",
"example": "1654123897062",
"$ref": "#/components/schemas/UnixMillis"
},
"_maintainerId": {
"type": "string",
"description": "The ID of the scheduled change maintainer",
"example": "12ab3c45de678910abc12345"
},
"_version": {
"type": "integer",
"description": "Version of the scheduled change",
"example": 1
},
"executionDate": {
"description": "When the scheduled changes should be executed",
"example": "1636558831870",
"$ref": "#/components/schemas/UnixMillis"
},
"instructions": {
"description": "The actions to perform on the execution date for these scheduled changes",
"example": "[ { \"kind\": \"turnFlagOn\" }]",
"$ref": "#/components/schemas/Instructions"
},
"conflicts": {
"description": "Details on any conflicting scheduled changes"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"FeatureFlagScheduledChanges": {
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"description": "Array of scheduled changes",
"items": {
"$ref": "#/components/schemas/FeatureFlagScheduledChange"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"FeatureFlagStatus": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Status of the flag",
"example": "inactive",
"enum": [
"new",
"inactive",
"active",
"launched"
]
},
"lastRequested": {
"type": "string",
"format": "date-time",
"description": "Timestamp of last time flag was requested",
"example": "2020-02-05T18:17:01.514Z"
},
"default": {
"description": "Default value seen from code"
}
}
},
"FeatureFlagStatusAcrossEnvironments": {
"type": "object",
"required": [
"environments",
"key",
"_links"
],
"properties": {
"environments": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/FeatureFlagStatus"
},
"description": "Flag status for environment.",
"example": {
"production": {
"lastRequested": "2020-02-05T18:17:01.514Z",
"name": "inactive"
}
}
},
"key": {
"type": "string",
"description": "feature flag key",
"example": "flag-key-123abc"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"example": {
"parent": {
"href": "/api/v2/flag-status",
"type": "application/json"
},
"self": {
"href": "/api/v2/flag-status/my-project/my-flag",
"type": "application/json"
}
}
}
}
},
"FeatureFlagStatuses": {
"type": "object",
"required": [
"_links"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"example": {
"self": {
"href": "/api/v2/flag-statuses/my-project/my-environment",
"type": "application/json"
}
}
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FlagStatusRep"
}
}
}
},
"FeatureFlags": {
"type": "object",
"required": [
"items",
"_links"
],
"properties": {
"items": {
"type": "array",
"description": "An array of feature flags",
"items": {
"$ref": "#/components/schemas/FeatureFlag"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"self": {
"href": "/api/v2/flags/default",
"type": "application/json"
}
}
},
"totalCount": {
"type": "integer",
"description": "The total number of flags",
"example": 1
},
"totalCountWithDifferences": {
"type": "integer",
"description": "The number of flags that have differences between environments. Only shown when query parameter compare is true.",
"example": 0
}
}
},
"FeatureWorkflowId": {
"type": "string"
},
"FileRep": {
"type": "object",
"properties": {
"filename": {
"type": "string",
"description": "The imported file name, including the extension",
"example": "bigsegimport.csv"
},
"status": {
"type": "string",
"description": "The imported file status",
"example": "complete"
}
}
},
"Filter": {
"type": "object",
"required": [
"type",
"op",
"values",
"negate"
],
"properties": {
"type": {
"type": "string",
"description": "Filter type. One of [contextAttribute, eventProperty, group]",
"example": "contextAttribute",
"enum": [
"group",
"contextAttribute",
"eventProperty"
]
},
"attribute": {
"type": "string",
"description": "If not a group node, the context attribute name or event property name to filter on",
"example": "country"
},
"op": {
"description": "The function to perform",
"example": "in",
"$ref": "#/components/schemas/Operator"
},
"values": {
"type": "array",
"description": "The context attribute / event property values or group member nodes",
"items": {},
"example": [
"JP"
]
},
"contextKind": {
"type": "string",
"description": "For context attribute filters, the context kind.",
"example": "user"
},
"negate": {
"type": "boolean",
"description": "If set, then take the inverse of the operator. 'in' becomes 'not in'.",
"example": false
}
}
},
"FlagConfigApprovalRequestResponse": {
"type": "object",
"required": [
"_id",
"_version",
"creationDate",
"serviceKind",
"reviewStatus",
"allReviews",
"notifyMemberIds",
"status",
"instructions",
"conflicts",
"_links"
],
"properties": {
"_id": {
"type": "string",
"description": "The ID of this approval request",
"example": "12ab3c45de678910abc12345"
},
"_version": {
"type": "integer",
"description": "Version of the approval request",
"example": 1
},
"creationDate": {
"description": "Timestamp of when the approval request was created",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"serviceKind": {
"description": "The approval service for this request. May be LaunchDarkly or an external approval service, such as ServiceNow or JIRA.",
"example": "launchdarkly",
"$ref": "#/components/schemas/ApprovalRequestServiceKind"
},
"requestorId": {
"type": "string",
"description": "The ID of the member who requested the approval",
"example": "12ab3c45de678910abc12345"
},
"description": {
"type": "string",
"description": "A human-friendly name for the approval request",
"example": "example: request approval from someone"
},
"reviewStatus": {
"type": "string",
"description": "Current status of the review of this approval request",
"example": "pending",
"enum": [
"approved",
"declined",
"pending"
]
},
"allReviews": {
"type": "array",
"description": "An array of individual reviews of this approval request",
"items": {
"$ref": "#/components/schemas/ReviewResponse"
}
},
"notifyMemberIds": {
"type": "array",
"description": "An array of member IDs. These members are notified to review the approval request.",
"items": {
"type": "string"
},
"example": [
"1234a56b7c89d012345e678f"
]
},
"appliedDate": {
"description": "Timestamp of when the approval request was applied",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"appliedByMemberId": {
"type": "string",
"description": "The member ID of the member who applied the approval request",
"example": "1234a56b7c89d012345e678f"
},
"appliedByServiceTokenId": {
"type": "string",
"description": "The service token ID of the service token which applied the approval request",
"example": "1234a56b7c89d012345e678f"
},
"status": {
"type": "string",
"description": "Current status of the approval request",
"example": "pending",
"enum": [
"pending",
"completed",
"failed",
"scheduled"
]
},
"instructions": {
"description": "List of instructions in semantic patch format to be applied to the feature flag",
"example": "[{\"kind\": \"turnFlagOn\"}]",
"$ref": "#/components/schemas/Instructions"
},
"conflicts": {
"type": "array",
"description": "Details on any conflicting approval requests",
"items": {
"$ref": "#/components/schemas/Conflict"
}
},
"_links": {
"type": "object",
"additionalProperties": {},
"description": "The location and content type of related resources"
},
"executionDate": {
"description": "Timestamp for when instructions will be executed",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"operatingOnId": {
"type": "string",
"description": "ID of scheduled change to edit or delete",
"example": "12ab3c45de678910abc12345"
},
"integrationMetadata": {
"description": "Details about the object in an external service corresponding to this approval request, such as a ServiceNow change request or a JIRA ticket, if an external approval service is being used",
"$ref": "#/components/schemas/IntegrationMetadata"
},
"source": {
"description": "Details about the source feature flag, if copied",
"$ref": "#/components/schemas/CopiedFromEnv"
},
"customWorkflowMetadata": {
"description": "Details about the custom workflow, if this approval request is part of a custom workflow",
"$ref": "#/components/schemas/CustomWorkflowMeta"
}
}
},
"FlagConfigApprovalRequestsResponse": {
"type": "object",
"required": [
"items",
"_links"
],
"properties": {
"items": {
"type": "array",
"description": "An array of approval requests",
"items": {
"$ref": "#/components/schemas/FlagConfigApprovalRequestResponse"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"FlagConfigEvaluation": {
"type": "object",
"properties": {
"contextKinds": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"FlagConfigMigrationSettingsRep": {
"type": "object",
"properties": {
"checkRatio": {
"type": "integer"
}
}
},
"FlagCopyConfigEnvironment": {
"type": "object",
"required": [
"key"
],
"properties": {
"key": {
"type": "string",
"description": "The environment key"
},
"currentVersion": {
"type": "integer",
"description": "Optional flag version. If you include this, the operation only succeeds if the current flag version in the environment matches this version."
}
}
},
"FlagCopyConfigPost": {
"type": "object",
"required": [
"source",
"target"
],
"properties": {
"source": {
"description": "The source environment",
"example": "{\"key\": \"source-env-key-123abc\", \"currentVersion\": 1}",
"$ref": "#/components/schemas/FlagCopyConfigEnvironment"
},
"target": {
"description": "The target environment",
"example": "{\"key\": \"target-env-key-123abc\", \"currentVersion\": 1}",
"$ref": "#/components/schemas/FlagCopyConfigEnvironment"
},
"comment": {
"type": "string",
"description": "Optional comment"
},
"includedActions": {
"type": "array",
"description": "Optional list of the flag changes to copy from the source environment to the target environment. You may include either includedActions or excludedActions, but not both. If you include neither, then all flag changes will be copied.",
"items": {
"type": "string",
"enum": [
"updateOn",
"updateRules",
"updateFallthrough",
"updateOffVariation",
"updatePrerequisites",
"updateTargets",
"updateFlagConfigMigrationSettings"
]
},
"example": [
"updateOn"
]
},
"excludedActions": {
"type": "array",
"description": "Optional list of the flag changes NOT to copy from the source environment to the target environment. You may include either includedActions or excludedActions, but not both. If you include neither, then all flag changes will be copied.",
"items": {
"type": "string",
"enum": [
"updateOn",
"updateRules",
"updateFallthrough",
"updateOffVariation",
"updatePrerequisites",
"updateTargets",
"updateFlagConfigMigrationSettings"
]
},
"example": [
"updateOn"
]
}
}
},
"FlagFollowersByProjEnvGetRep": {
"type": "object",
"required": [
"_links"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"self": {
"href": "/api/v2/projects/my-project/flags/my-flay/environments/my-environment/followers",
"type": "application/json"
}
}
},
"items": {
"type": "array",
"description": "An array of flags and their followers",
"items": {
"$ref": "#/components/schemas/followersPerFlag"
}
}
}
},
"FlagFollowersGetRep": {
"type": "object",
"required": [
"_links",
"items"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"self": {
"href": "/api/v2/projects/my-project/flags/my-flay/environments/my-environment/followers",
"type": "application/json"
}
}
},
"items": {
"type": "array",
"description": "An array of members who are following this flag",
"items": {
"$ref": "#/components/schemas/FollowFlagMember"
}
}
}
},
"FlagImportConfigurationPost": {
"type": "object",
"required": [
"config"
],
"properties": {
"config": {
"description": "The global configuration settings, as specified by the formVariables in the manifest.json for this configuration.",
"example": "{\"workspaceApiKey\": \"An API key with read permissions in the external feature management system\", \"workspaceId\": \"The ID of the workspace in the external system\", \"environmentId\": \"The ID of the environment in the external system\", \"splitTag\": \"If provided, imports only the flags from the external system with this tag. Leave blank to import all flags.\", \"ldApiKey\": \"An API key with create flag permissions in your LaunchDarkly account\", \"ldTag\": \"A tag to apply to all flags imported to LaunchDarkly\", \"ldMaintainer\": \"The ID of the member who will be the maintainer of the imported flags\"}",
"$ref": "#/components/schemas/FormVariableConfig"
},
"tags": {
"type": "array",
"description": "Tags to associate with the configuration",
"items": {
"type": "string"
},
"example": [
"example-tag"
]
},
"name": {
"type": "string",
"description": "Name to identify the configuration",
"example": "Sample configuration"
}
}
},
"FlagImportIntegration": {
"type": "object",
"required": [
"_links",
"_id",
"integrationKey",
"projectKey",
"config",
"tags",
"name",
"version",
"_status"
],
"properties": {
"_links": {
"description": "The location and content type of related resources",
"$ref": "#/components/schemas/FlagImportIntegrationLinks"
},
"_id": {
"type": "string",
"description": "The integration ID",
"example": "12ab3c4d5ef1a2345bcde67f"
},
"integrationKey": {
"type": "string",
"description": "The integration key",
"example": "split",
"enum": [
"split",
"unleash"
]
},
"projectKey": {
"type": "string",
"description": "The project key",
"example": "default"
},
"config": {
"description": "The configuration for the given import integration. Only included when requesting a single integration by ID. Refer to the formVariables field in the corresponding manifest.json for a full list of fields for each integration.",
"$ref": "#/components/schemas/FormVariableConfig"
},
"tags": {
"type": "array",
"description": "List of tags for this configuration",
"items": {
"type": "string"
},
"example": []
},
"name": {
"type": "string",
"description": "Name of the configuration",
"example": "Development environment configuration"
},
"version": {
"type": "integer",
"description": "Version of the current configuration",
"example": 1
},
"_access": {
"description": "Details on the allowed and denied actions for this configuration",
"$ref": "#/components/schemas/Access"
},
"_status": {
"description": "Details on the status of the import job",
"$ref": "#/components/schemas/FlagImportStatus"
}
}
},
"FlagImportIntegrationCollection": {
"type": "object",
"required": [
"_links",
"items"
],
"properties": {
"_links": {
"description": "The location and content type of related resources",
"$ref": "#/components/schemas/FlagImportIntegrationCollectionLinks"
},
"items": {
"type": "array",
"description": "An array of flag import configurations",
"items": {
"$ref": "#/components/schemas/FlagImportIntegration"
}
}
}
},
"FlagImportIntegrationCollectionLinks": {
"type": "object",
"required": [
"self"
],
"properties": {
"self": {
"$ref": "#/components/schemas/Link"
},
"parent": {
"$ref": "#/components/schemas/Link"
}
}
},
"FlagImportIntegrationLinks": {
"type": "object",
"required": [
"self",
"parent",
"project"
],
"properties": {
"self": {
"$ref": "#/components/schemas/Link"
},
"parent": {
"$ref": "#/components/schemas/Link"
},
"project": {
"$ref": "#/components/schemas/Link"
}
}
},
"FlagImportStatus": {
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The current status of the import integrations related import job",
"example": "pending",
"enum": [
"complete",
"importing",
"pending",
"failed",
"partial"
]
},
"lastImport": {
"description": "Timestamp of when the most recent successful import occurred.",
"example": "1717263000000",
"$ref": "#/components/schemas/UnixMillis"
},
"lastError": {
"description": "Timestamp of when the most recent import error occurred, if any",
"example": "1714584600000",
"$ref": "#/components/schemas/UnixMillis"
},
"errors": {
"type": "array",
"items": {
"$ref": "#/components/schemas/StatusResponse"
}
}
}
},
"FlagInput": {
"type": "object",
"required": [
"ruleId",
"flagConfigVersion"
],
"properties": {
"ruleId": {
"type": "string",
"description": "The ID of the variation or rollout of the flag to use. Use \"fallthrough\" for the default targeting behavior when the flag is on.",
"example": "e432f62b-55f6-49dd-a02f-eb24acf39d05"
},
"flagConfigVersion": {
"type": "integer",
"description": "The flag version",
"example": 12
},
"notInExperimentVariationId": {
"type": "string",
"description": "The ID of the variation to route traffic not part of the experiment analysis to. Defaults to variation ID of baseline treatment, if set.",
"example": "e432f62b-55f6-49dd-a02f-eb24acf39d05"
}
}
},
"FlagLinkCollectionRep": {
"type": "object",
"required": [
"items",
"_links"
],
"properties": {
"items": {
"type": "array",
"description": "An array of flag links",
"items": {
"$ref": "#/components/schemas/FlagLinkRep"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"FlagLinkMember": {
"type": "object",
"required": [
"_links",
"_id"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
}
},
"_id": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
}
}
},
"FlagLinkRep": {
"type": "object",
"required": [
"_links",
"_id",
"_deepLink",
"_timestamp",
"_createdAt"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"_key": {
"type": "string",
"description": "The flag link key",
"example": "flag-link-key-123abc"
},
"_integrationKey": {
"type": "string",
"description": "The integration key for an integration whose manifest.json includes the flagLink capability, if this is a flag link for an existing integration"
},
"_id": {
"type": "string",
"description": "The ID of this flag link",
"example": "1234a56b7c89d012345e678f"
},
"_deepLink": {
"type": "string",
"description": "The URL for the external resource the flag is linked to",
"example": "https://example.com/archives/123123123"
},
"_timestamp": {
"description": "The time to mark this flag link as associated with the external URL. Defaults to the creation time of the flag link, but can be set to another time during creation.",
"example": "{\"milliseconds\": 1655342199935, \"seconds\": 1655342199, \"rfc3339\": \"2022-06-16T01:16:39Z\", \"simple\": \"2022-06-16 01:16:39\"}",
"$ref": "#/components/schemas/TimestampRep"
},
"title": {
"type": "string",
"description": "The title of the flag link",
"example": "Example link title"
},
"description": {
"type": "string",
"description": "The description of the flag link",
"example": "Example link description"
},
"_metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "The metadata required by this integration in order to create a flag link, if this is a flag link for an existing integration. Defined in the integration's manifest.json file under flagLink."
},
"_createdAt": {
"description": "Timestamp of when the flag link was created",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"_member": {
"description": "Details on the member associated with this flag link",
"$ref": "#/components/schemas/FlagLinkMember"
}
}
},
"FlagListingRep": {
"type": "object",
"required": [
"name",
"key"
],
"properties": {
"name": {
"type": "string",
"description": "The flag name",
"example": "Example flag"
},
"key": {
"type": "string",
"description": "The flag key",
"example": "flag-key-123abc"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
}
},
"_site": {
"$ref": "#/components/schemas/Link"
}
}
},
"FlagMigrationSettingsRep": {
"type": "object",
"properties": {
"contextKind": {
"type": "string",
"description": "The context kind targeted by this migration flag. Only applicable for six-stage migrations.",
"example": "device"
},
"stageCount": {
"type": "integer",
"description": "The number of stages for this migration flag",
"example": 6
}
}
},
"FlagPrerequisitePost": {
"type": "object",
"required": [
"key",
"variationId"
],
"properties": {
"key": {
"type": "string",
"description": "Flag key of the prerequisite flag"
},
"variationId": {
"type": "string",
"description": "ID of a variation of the prerequisite flag"
}
}
},
"FlagRep": {
"type": "object",
"required": [
"_links"
],
"properties": {
"targetingRule": {
"type": "string",
"description": "The targeting rule",
"example": "fallthrough"
},
"targetingRuleDescription": {
"type": "string",
"description": "The rule description",
"example": "Customers who live in Canada"
},
"targetingRuleClauses": {
"type": "array",
"description": "An array of clauses used for individual targeting based on attributes",
"items": {}
},
"flagConfigVersion": {
"type": "integer",
"description": "The flag version",
"example": 12
},
"notInExperimentVariationId": {
"type": "string",
"description": "The ID of the variation to route traffic not part of the experiment analysis to",
"example": "e432f62b-55f6-49dd-a02f-eb24acf39d05"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"self": {
"href": "/api/v2/flags/my-project/my-flag",
"type": "application/json"
}
}
}
}
},
"FlagScheduledChangesInput": {
"type": "object",
"required": [
"instructions"
],
"properties": {
"comment": {
"type": "string",
"description": "Optional comment describing the update to the scheduled changes",
"example": "optional comment"
},
"instructions": {
"description": "The instructions to perform when updating. This should be an array with objects that look like {\"kind\": \"update_action\"}. Some instructions also require a value field in the array element.",
"example": "[ { \"kind\": \"replaceScheduledChangesInstructions\", \"value\": [ { \"kind\": \"turnFlagOff\" } ] } ]",
"$ref": "#/components/schemas/Instructions"
}
}
},
"FlagStatusRep": {
"type": "object",
"required": [
"name",
"_links"
],
"properties": {
"name": {
"type": "string",
"description": "Status of the flag",
"example": "inactive",
"enum": [
"new",
"inactive",
"active",
"launched"
]
},
"lastRequested": {
"type": "string",
"format": "date-time",
"description": "Timestamp of last time flag was requested",
"example": "2020-02-05T18:17:01.514Z"
},
"default": {
"description": "Default value seen from code"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"example": {
"parent": {
"href": "/api/v2/flags/my-project/my-flag",
"type": "application/json"
},
"self": {
"href": "/api/v2/flag-statuses/my-project/my-flag",
"type": "application/json"
}
}
}
}
},
"FlagSummary": {
"type": "object",
"required": [
"variations",
"prerequisites"
],
"properties": {
"variations": {
"description": "A summary of the variations for this flag",
"$ref": "#/components/schemas/AllVariationsSummary"
},
"prerequisites": {
"type": "integer",
"description": "The number of prerequisites for this flag"
}
}
},
"FlagTriggerInput": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Optional comment describing the update",
"example": "optional comment"
},
"instructions": {
"type": "array",
"description": "The instructions to perform when updating. This should be an array with objects that look like {\"kind\": \"trigger_action\"}.",
"items": {
"$ref": "#/components/schemas/Instruction"
},
"example": [
{
"kind": "disableTrigger"
}
]
}
}
},
"FlagsInput": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/FlagInput"
}
},
"FollowFlagMember": {
"type": "object",
"required": [
"_links",
"_id",
"role",
"email"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
}
},
"_id": {
"type": "string",
"description": "The member's ID",
"example": "569f183514f4432160000007"
},
"firstName": {
"type": "string",
"description": "The member's first name",
"example": "Ariel"
},
"lastName": {
"type": "string",
"description": "The member's last name",
"example": "Flores"
},
"role": {
"type": "string",
"description": "The member's base role. If the member has no additional roles, this role will be in effect.",
"example": "admin"
},
"email": {
"type": "string",
"description": "The member's email address",
"example": "ariel@acme.com"
}
}
},
"ForbiddenErrorRep": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"description": "Specific error code encountered",
"example": "forbidden"
},
"message": {
"type": "string",
"description": "Description of the error",
"example": "Forbidden. Access to the requested resource was denied."
}
}
},
"FormVariable": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"name": {
"type": "string"
},
"type": {
"type": "string"
},
"description": {
"type": "string"
},
"placeholder": {
"type": "string"
},
"isOptional": {
"type": "boolean"
},
"defaultValue": {},
"allowedValues": {
"type": "array",
"items": {
"type": "string"
}
},
"dynamicOptions": {
"$ref": "#/components/schemas/DynamicOptions"
}
}
},
"FormVariableConfig": {
"type": "object",
"additionalProperties": {}
},
"GenerateTrustPolicyPostRep": {
"type": "object",
"properties": {
"awsTrustPolicy": {
"description": "The AWS trust policy",
"$ref": "#/components/schemas/TrustPolicyDetails"
}
}
},
"GenerateWarehouseDestinationKeyPairPostRep": {
"type": "object",
"properties": {
"public_key": {
"type": "string",
"description": "The public key used by LaunchDarkly"
},
"public_key_pkcs8": {
"type": "string",
"description": "The public key to assign in your Snowflake worksheet"
}
}
},
"HMACSignature": {
"type": "object",
"properties": {
"headerName": {
"type": "string"
},
"hmacSecretFormVariableKey": {
"type": "string"
}
}
},
"HeaderItems": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
"HoldoutDetailRep": {
"type": "object",
"required": [
"_id",
"status",
"holdoutAmount",
"createdAt",
"updatedAt",
"baseExperiment"
],
"properties": {
"_id": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"created",
"enabled",
"running",
"ended"
]
},
"description": {
"type": "string"
},
"holdoutAmount": {
"type": "string",
"description": "The percentage of traffic allocated to this holdout."
},
"isDirty": {
"type": "boolean",
"description": "Indicates if the holdout experiment is running and if any related experiments are running."
},
"createdAt": {
"$ref": "#/components/schemas/UnixMillis"
},
"updatedAt": {
"$ref": "#/components/schemas/UnixMillis"
},
"baseExperiment": {
"$ref": "#/components/schemas/Experiment"
},
"relatedExperiments": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Experiment"
}
}
}
},
"HoldoutPatchInput": {
"type": "object",
"required": [
"instructions"
],
"properties": {
"comment": {
"type": "string",
"description": "Optional comment describing the update",
"example": "Optional comment"
},
"instructions": {
"description": "The instructions to perform when updating. This should be an array with objects that look like {\"kind\": \"update_action\"}. Some instructions also require a value field in the array element.",
"example": "[{\"kind\": \"updateName\", \"name\": \"Updated holdout name\"}]",
"$ref": "#/components/schemas/Instructions"
}
}
},
"HoldoutPostRequest": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A human-friendly name for the holdout",
"example": "holdout-one-name"
},
"key": {
"type": "string",
"description": "A key that identifies the holdout",
"example": "holdout-key"
},
"description": {
"type": "string",
"description": "Description of the holdout",
"example": "My holdout-one description"
},
"randomizationunit": {
"type": "string",
"description": "The chosen randomization unit for the holdout base experiment",
"example": "user"
},
"attributes": {
"type": "array",
"description": "The attributes that the holdout iteration's results can be sliced by",
"items": {
"type": "string"
},
"example": [
"country",
"device",
"os"
]
},
"holdoutamount": {
"type": "string",
"description": "Audience allocation for the holdout",
"example": "10"
},
"primarymetrickey": {
"type": "string",
"description": "The key of the primary metric for this holdout",
"example": "metric-key-123abc"
},
"metrics": {
"type": "array",
"description": "Details on the metrics for this experiment",
"items": {
"$ref": "#/components/schemas/MetricInput"
}
},
"prerequisiteflagkey": {
"type": "string",
"description": "The key of the flag that the holdout is dependent on",
"example": "flag-key-123abc"
},
"maintainerId": {
"type": "string",
"description": "Maintainer id"
}
}
},
"HoldoutRep": {
"type": "object",
"required": [
"_id",
"status",
"holdoutAmount",
"createdAt",
"updatedAt",
"baseExperiment"
],
"properties": {
"_id": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"created",
"enabled",
"running",
"ended"
]
},
"description": {
"type": "string"
},
"holdoutAmount": {
"type": "string",
"description": "The percentage of traffic allocated to this holdout."
},
"createdAt": {
"$ref": "#/components/schemas/UnixMillis"
},
"updatedAt": {
"$ref": "#/components/schemas/UnixMillis"
},
"baseExperiment": {
"$ref": "#/components/schemas/Experiment"
},
"experiments": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RelatedExperimentRep"
}
}
}
},
"HoldoutsCollectionRep": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SimpleHoldoutRep"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"self": {
"href": "/api/v2/my-project/environments/my-environment/holdouts?limit=20",
"type": "application/json"
}
}
},
"total_count": {
"type": "integer",
"description": "The total number of holdouts in this project and environment."
}
}
},
"HunkRep": {
"type": "object",
"required": [
"startingLineNumber"
],
"properties": {
"startingLineNumber": {
"type": "integer",
"description": "Line number of beginning of code reference hunk",
"example": 45
},
"lines": {
"type": "string",
"description": "Contextual lines of code that include the referenced feature flag",
"example": "var enableFeature = 'enable-feature';"
},
"projKey": {
"type": "string",
"description": "The project key",
"example": "default"
},
"flagKey": {
"type": "string",
"description": "The feature flag key",
"example": "enable-feature"
},
"aliases": {
"type": "array",
"description": "An array of flag key aliases",
"items": {
"type": "string"
},
"example": [
"enableFeature",
"EnableFeature"
]
}
}
},
"Import": {
"type": "object",
"required": [
"id",
"segmentKey",
"creationTime",
"mode",
"status",
"_links"
],
"properties": {
"id": {
"type": "string",
"description": "The import ID",
"example": "1234a567-bcd8-9123-4567-abcd1234567f"
},
"segmentKey": {
"type": "string",
"description": "The segment key",
"example": "example-big-segment"
},
"creationTime": {
"description": "Timestamp of when this import was created",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"mode": {
"type": "string",
"description": "The import mode used, either merge or replace",
"example": "replace"
},
"status": {
"type": "string",
"description": "The import status",
"example": "complete",
"enum": [
"preparing",
"pending_approval",
"ready",
"in_progress",
"complete",
"stopped"
]
},
"files": {
"type": "array",
"description": "The imported files and their status",
"items": {
"$ref": "#/components/schemas/FileRep"
},
"example": [
{
"filename": "bigsegimport.csv",
"status": "complete"
}
]
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"InitiatorRep": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the member who initiated the export",
"example": "Bob Loblaw"
},
"email": {
"type": "string",
"description": "The email address of the member who initiated the export",
"example": "ariel@acme.com"
}
}
},
"Instruction": {
"type": "object",
"additionalProperties": {}
},
"Instructions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Instruction"
}
},
"Integration": {
"type": "object",
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"_id": {
"type": "string",
"description": "The ID for this integration audit log subscription",
"example": "1234a56b7c89d012345e678f"
},
"kind": {
"type": "string",
"description": "The type of integration",
"example": "datadog"
},
"name": {
"type": "string",
"description": "A human-friendly name for the integration",
"example": "Example Datadog integration"
},
"config": {
"type": "object",
"additionalProperties": {},
"description": "Details on configuration for an integration of this type. Refer to the formVariables field in the corresponding manifest.json for a full list of fields for each integration."
},
"statements": {
"type": "array",
"description": "Represents a Custom role policy, defining a resource kinds filter the integration audit log subscription responds to.",
"items": {
"$ref": "#/components/schemas/Statement"
}
},
"on": {
"type": "boolean",
"description": "Whether the integration is currently active",
"example": true
},
"tags": {
"type": "array",
"description": "An array of tags for this integration",
"items": {
"type": "string"
},
"example": [
"testing"
]
},
"_access": {
"description": "Details on the allowed and denied actions for this subscription",
"$ref": "#/components/schemas/Access"
},
"_status": {
"description": "Details on the most recent successes and errors for this integration",
"$ref": "#/components/schemas/IntegrationSubscriptionStatusRep"
},
"url": {
"type": "string",
"description": "Slack webhook receiver URL. Only used for legacy Slack webhook integrations."
},
"apiKey": {
"type": "string",
"description": "Datadog API key. Only used for legacy Datadog webhook integrations."
}
}
},
"IntegrationConfigurationCollectionRep": {
"type": "object",
"required": [
"items",
"_links"
],
"properties": {
"items": {
"type": "array",
"description": "An array of integration configurations",
"items": {
"$ref": "#/components/schemas/IntegrationConfigurationsRep"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"IntegrationConfigurationPost": {
"type": "object",
"required": [
"name",
"configValues"
],
"properties": {
"name": {
"type": "string",
"description": "The name of the integration configuration",
"example": "Example integration configuration"
},
"enabled": {
"type": "boolean",
"description": "Whether the integration configuration is enabled. If omitted, defaults to true",
"example": true
},
"tags": {
"type": "array",
"description": "Tags for the integration",
"items": {
"type": "string"
},
"example": [
"ops"
]
},
"configValues": {
"type": "object",
"additionalProperties": {},
"description": "The unique set of fields required to configure the integration. Refer to the formVariables field in the corresponding manifest.json at https://github.com/launchdarkly/integration-framework/tree/main/integrations for a full list of fields for the integration you wish to configure.",
"example": {
"optional": "an optional property",
"required": "the required property",
"url": "https://example.com"
}
},
"capabilityConfig": {
"description": "The capability configuration for the integration",
"example": "{\"auditLogEventsHook\": \"policy\": []\"}",
"$ref": "#/components/schemas/CapabilityConfigPost"
}
}
},
"IntegrationConfigurationsRep": {
"type": "object",
"required": [
"_links",
"_id",
"name"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"_id": {
"type": "string",
"description": "The unique identifier for this integration configuration"
},
"name": {
"type": "string",
"description": "A human-friendly name for the integration",
"example": "Example Datadog integration"
},
"_createdAt": {
"description": "The time the integration configuration was created",
"$ref": "#/components/schemas/UnixMillis"
},
"_integrationKey": {
"type": "string",
"description": "The type of integration",
"example": "datadog"
},
"tags": {
"type": "array",
"description": "An array of tags for this integration",
"items": {
"type": "string"
},
"example": [
"testing"
]
},
"enabled": {
"type": "boolean",
"description": "Whether the integration is currently active"
},
"_access": {
"description": "Details on the allowed and denied actions for this integration configuration",
"$ref": "#/components/schemas/Access"
},
"configValues": {
"type": "object",
"additionalProperties": {},
"description": "Details on configuration for an integration of this type. Refer to the formVariables field in the corresponding manifest.json for a full list of fields for each integration."
},
"capabilityConfig": {
"description": "The capability configuration for the integration",
"example": "{\"auditLogEventsHook\": \"statements\": []\"}",
"$ref": "#/components/schemas/CapabilityConfigRep"
}
}
},
"IntegrationDeliveryConfiguration": {
"type": "object",
"required": [
"_links",
"_id",
"integrationKey",
"projectKey",
"environmentKey",
"config",
"on",
"tags",
"name",
"version"
],
"properties": {
"_links": {
"description": "The location and content type of related resources",
"$ref": "#/components/schemas/IntegrationDeliveryConfigurationLinks"
},
"_id": {
"type": "string",
"description": "The integration ID",
"example": "12ab3c4d5ef1a2345bcde67f"
},
"integrationKey": {
"type": "string",
"description": "The integration key",
"example": "example-integration-key"
},
"projectKey": {
"type": "string",
"description": "The project key",
"example": "default"
},
"environmentKey": {
"type": "string",
"description": "The environment key",
"example": "development"
},
"config": {
"description": "The delivery configuration for the given integration provider. Only included when requesting a single integration by ID. Refer to the formVariables field in the corresponding manifest.json for a full list of fields for each integration.",
"$ref": "#/components/schemas/FormVariableConfig"
},
"on": {
"type": "boolean",
"description": "Whether the configuration is turned on",
"example": true
},
"tags": {
"type": "array",
"description": "List of tags for this configuration",
"items": {
"type": "string"
},
"example": []
},
"name": {
"type": "string",
"description": "Name of the configuration",
"example": "Development environment configuration"
},
"version": {
"type": "integer",
"description": "Version of the current configuration",
"example": 1
},
"_access": {
"description": "Details on the allowed and denied actions for this configuration",
"$ref": "#/components/schemas/Access"
}
}
},
"IntegrationDeliveryConfigurationCollection": {
"type": "object",
"required": [
"_links",
"items"
],
"properties": {
"_links": {
"description": "The location and content type of related resources",
"$ref": "#/components/schemas/IntegrationDeliveryConfigurationCollectionLinks"
},
"items": {
"type": "array",
"description": "An array of integration delivery configurations",
"items": {
"$ref": "#/components/schemas/IntegrationDeliveryConfiguration"
}
}
}
},
"IntegrationDeliveryConfigurationCollectionLinks": {
"type": "object",
"required": [
"self"
],
"properties": {
"self": {
"$ref": "#/components/schemas/Link"
},
"parent": {
"$ref": "#/components/schemas/Link"
}
}
},
"IntegrationDeliveryConfigurationLinks": {
"type": "object",
"required": [
"self",
"parent",
"project",
"environment"
],
"properties": {
"self": {
"$ref": "#/components/schemas/Link"
},
"parent": {
"$ref": "#/components/schemas/Link"
},
"project": {
"$ref": "#/components/schemas/Link"
},
"environment": {
"$ref": "#/components/schemas/Link"
}
}
},
"IntegrationDeliveryConfigurationPost": {
"type": "object",
"required": [
"config"
],
"properties": {
"on": {
"type": "boolean",
"description": "Whether the integration configuration is active. Default value is false.",
"example": false
},
"config": {
"description": "The global integration settings, as specified by the formVariables in the manifest.json for this integration.",
"example": "{\"required\": \"example value for required formVariables property for sample-integration\", \"optional\": \"example value for optional formVariables property for sample-integration\"}",
"$ref": "#/components/schemas/FormVariableConfig"
},
"tags": {
"type": "array",
"description": "Tags to associate with the integration",
"items": {
"type": "string"
},
"example": [
"example-tag"
]
},
"name": {
"type": "string",
"description": "Name to identify the integration",
"example": "Sample integration"
}
}
},
"IntegrationDeliveryConfigurationResponse": {
"type": "object",
"properties": {
"statusCode": {
"type": "integer",
"description": "The status code returned by the validation",
"example": 200
},
"error": {
"type": "string"
},
"timestamp": {
"description": "Timestamp of when the validation was performed",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"responseBody": {
"type": "string",
"description": "JSON response to the validation request"
}
}
},
"IntegrationMetadata": {
"type": "object",
"required": [
"externalId",
"externalStatus",
"externalUrl",
"lastChecked"
],
"properties": {
"externalId": {
"type": "string"
},
"externalStatus": {
"$ref": "#/components/schemas/IntegrationStatus"
},
"externalUrl": {
"type": "string"
},
"lastChecked": {
"$ref": "#/components/schemas/UnixMillis"
}
}
},
"IntegrationStatus": {
"type": "object",
"required": [
"display",
"value"
],
"properties": {
"display": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
"IntegrationStatusRep": {
"type": "object",
"properties": {
"statusCode": {
"type": "integer"
},
"responseBody": {
"type": "string"
},
"timestamp": {
"$ref": "#/components/schemas/UnixMillis"
}
}
},
"IntegrationSubscriptionStatusRep": {
"type": "object",
"properties": {
"successCount": {
"type": "integer"
},
"lastSuccess": {
"$ref": "#/components/schemas/UnixMillis"
},
"lastError": {
"$ref": "#/components/schemas/UnixMillis"
},
"errorCount": {
"type": "integer"
},
"errors": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IntegrationStatusRep"
}
}
}
},
"Integrations": {
"type": "object",
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
}
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Integration"
}
},
"key": {
"type": "string"
}
}
},
"InvalidRequestErrorRep": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"description": "Specific error code encountered",
"example": "invalid_request"
},
"message": {
"type": "string",
"description": "Description of the error",
"example": "Invalid request body"
}
}
},
"IterationInput": {
"type": "object",
"required": [
"hypothesis",
"metrics",
"treatments",
"flags"
],
"properties": {
"hypothesis": {
"type": "string",
"description": "The expected outcome of this experiment",
"example": "Example hypothesis, the new button placement will increase conversion"
},
"canReshuffleTraffic": {
"type": "boolean",
"description": "Whether to allow the experiment to reassign traffic to different variations when you increase or decrease the traffic in your experiment audience (true) or keep all traffic assigned to its initial variation (false). Defaults to true.",
"example": true
},
"metrics": {
"description": "Details on the metrics for this experiment",
"$ref": "#/components/schemas/MetricsInput"
},
"primarySingleMetricKey": {
"type": "string",
"description": "The key of the primary metric for this experiment. Either primarySingleMetricKey or primaryFunnelKey must be present.",
"example": "metric-key-123abc"
},
"primaryFunnelKey": {
"type": "string",
"description": "The key of the primary funnel group for this experiment. Either primarySingleMetricKey or primaryFunnelKey must be present.",
"example": "metric-group-key-123abc"
},
"treatments": {
"description": "Details on the variations you are testing in the experiment. You establish these variations in feature flags, and then reuse them in experiments.",
"$ref": "#/components/schemas/TreatmentsInput"
},
"flags": {
"description": "Details on the feature flag and targeting rules for this iteration",
"example": "{\"example-flag-key\": { \"ruleId\": \"e432f62b-55f6-49dd-a02f-eb24acf39d05\", \"flagConfigVersion\": 12, \"notInExperimentVariationId\": \"e432f62b-55f6-49dd-a02f-eb24acf39d05\" }}",
"$ref": "#/components/schemas/FlagsInput"
},
"randomizationUnit": {
"type": "string",
"description": "The unit of randomization for this iteration. Defaults to user.",
"example": "user"
},
"attributes": {
"type": "array",
"description": "The attributes that this iteration's results can be sliced by",
"items": {
"type": "string"
},
"example": [
"country",
"device",
"os"
]
}
}
},
"IterationRep": {
"type": "object",
"required": [
"hypothesis",
"status",
"createdAt"
],
"properties": {
"_id": {
"type": "string",
"description": "The iteration ID",
"example": "12ab3c45de678910fgh12345"
},
"hypothesis": {
"type": "string",
"description": "The expected outcome of this experiment",
"example": "The new button placement will increase conversion"
},
"status": {
"type": "string",
"description": "The status of the iteration: not_started, running, stopped",
"example": "running",
"enum": [
"not_started",
"running",
"stopped"
]
},
"createdAt": {
"description": "Timestamp of when the iteration was created",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"startedAt": {
"description": "Timestamp of when the iteration started",
"example": "1655314200000",
"$ref": "#/components/schemas/UnixMillis"
},
"endedAt": {
"description": "Timestamp of when the iteration ended",
"example": "1656610200000",
"$ref": "#/components/schemas/UnixMillis"
},
"winningTreatmentId": {
"type": "string",
"description": "The ID of the treatment chosen when the experiment stopped",
"example": "122c9f3e-da26-4321-ba68-e0fc02eced58"
},
"winningReason": {
"type": "string",
"description": "The reason you stopped the experiment",
"example": "We ran this iteration for two weeks and the winning variation was clear"
},
"canReshuffleTraffic": {
"type": "boolean",
"description": "Whether the experiment may reassign traffic to different variations when the experiment audience changes (true) or must keep all traffic assigned to its initial variation (false).",
"example": true
},
"flags": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/FlagRep"
},
"description": "Details on the flag used in this experiment"
},
"reallocationFrequencyMillis": {
"type": "integer",
"description": "The cadence (in milliseconds) to update the allocation. Only present for multi-armed bandits.",
"example": 3600000
},
"version": {
"type": "integer",
"description": "The current version that the iteration is on",
"example": 0
},
"primaryMetric": {
"description": "Deprecated, use primarySingleMetric and primaryFunnel instead. Details on the primary metric for this experiment.",
"deprecated": true,
"$ref": "#/components/schemas/DependentMetricOrMetricGroupRep"
},
"primarySingleMetric": {
"description": "Details on the primary metric for this experiment",
"$ref": "#/components/schemas/MetricV2Rep"
},
"primaryFunnel": {
"description": "Details on the primary funnel group for this experiment",
"$ref": "#/components/schemas/DependentMetricGroupRepWithMetrics"
},
"randomizationUnit": {
"type": "string",
"description": "The unit of randomization for this iteration",
"example": "user"
},
"attributes": {
"type": "array",
"description": "The available attribute filters for this iteration",
"items": {
"type": "string"
}
},
"treatments": {
"type": "array",
"description": "Details on the variations you are testing in the experiment",
"items": {
"$ref": "#/components/schemas/TreatmentRep"
}
},
"secondaryMetrics": {
"type": "array",
"description": "Deprecated, use metrics instead. Details on the secondary metrics for this experiment.",
"items": {
"$ref": "#/components/schemas/MetricV2Rep"
},
"deprecated": true
},
"metrics": {
"type": "array",
"description": "Details on the metrics for this experiment",
"items": {
"$ref": "#/components/schemas/DependentMetricOrMetricGroupRep"
}
},
"layerSnapshot": {
"description": "Snapshot of the layer state on iteration stop, if part of a layer. Otherwise omitted.",
"$ref": "#/components/schemas/LayerSnapshotRep"
}
}
},
"JSONPatch": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PatchOperation"
}
},
"LastSeenMetadata": {
"type": "object",
"properties": {
"tokenId": {
"type": "string",
"description": "The ID of the token used in the member's last session",
"example": "5b52207f8ca8e631d31fdb2b"
}
}
},
"LayerCollectionRep": {
"type": "object",
"required": [
"items",
"totalCount",
"_links"
],
"properties": {
"items": {
"type": "array",
"description": "The layers in the project",
"items": {
"$ref": "#/components/schemas/LayerRep"
}
},
"totalCount": {
"type": "integer",
"description": "The total number of layers in the project"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"self": {
"href": "/api/v2/projects/my-project/layers",
"type": "application/json"
}
}
}
}
},
"LayerConfigurationRep": {
"type": "object",
"required": [
"reservations"
],
"properties": {
"reservations": {
"type": "array",
"description": "The experiment reservations for the layer",
"items": {
"$ref": "#/components/schemas/LayerReservationRep"
}
}
}
},
"LayerPatchInput": {
"type": "object",
"required": [
"instructions"
],
"properties": {
"comment": {
"type": "string",
"description": "Optional comment describing the update",
"example": "Optional comment"
},
"environmentKey": {
"type": "string",
"description": "The environment key used for making environment specific updates. For example, updating the reservation of an experiment",
"example": "production"
},
"instructions": {
"description": "The instructions to perform when updating. This should be an array with objects that look like {\"kind\": \"update_action\"}. Some instructions also require a value field in the array element.",
"example": "[{\"kind\": \"updateName\", \"name\": \"Updated layer name\"}]",
"$ref": "#/components/schemas/Instructions"
}
}
},
"LayerPost": {
"type": "object",
"required": [
"key",
"name",
"description"
],
"properties": {
"key": {
"type": "string",
"description": "Unique identifier for the layer",
"example": "checkout-flow"
},
"name": {
"type": "string",
"description": "Layer name",
"example": "Checkout Flow"
},
"description": {
"type": "string",
"description": "The checkout flow for the application"
}
}
},
"LayerRep": {
"type": "object",
"required": [
"key",
"name",
"description",
"createdAt"
],
"properties": {
"key": {
"type": "string",
"description": "The key of the layer",
"example": "checkout-flow"
},
"name": {
"type": "string",
"description": "The name of the layer",
"example": "Checkout Flow"
},
"description": {
"type": "string",
"description": "The description of the layer",
"example": "The checkout flow for the application"
},
"createdAt": {
"description": "The date and time when the layer was created",
"$ref": "#/components/schemas/UnixMillis"
},
"randomizationUnit": {
"type": "string",
"description": "The unit of randomization for the layer",
"example": "user"
},
"environments": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/LayerConfigurationRep"
},
"description": "The layer configurations for each requested environment"
}
}
},
"LayerReservationRep": {
"type": "object",
"required": [
"experimentKey",
"flagKey",
"reservationPercent"
],
"properties": {
"experimentKey": {
"type": "string",
"description": "The key of the experiment",
"example": "checkout-flow-experiment"
},
"flagKey": {
"type": "string",
"description": "The key of the flag",
"example": "checkout-flow-flag"
},
"reservationPercent": {
"type": "integer",
"description": "The percentage of traffic reserved for the experiment",
"example": 20
}
}
},
"LayerSnapshotRep": {
"type": "object",
"required": [
"key",
"name",
"reservationPercent",
"otherReservationPercent"
],
"properties": {
"key": {
"type": "string",
"description": "Key of the layer the experiment was part of",
"example": "checkout-flow"
},
"name": {
"type": "string",
"description": "Layer name at the time this experiment iteration was stopped",
"example": "Checkout Flow"
},
"reservationPercent": {
"type": "integer",
"description": "Percent of layer traffic that was reserved in the layer for this experiment iteration",
"example": 10
},
"otherReservationPercent": {
"type": "integer",
"description": "Percent of layer traffic that was reserved for other experiments in the same environment, when this experiment iteration was stopped",
"example": 70
}
}
},
"LegacyExperimentRep": {
"type": "object",
"properties": {
"metricKey": {
"type": "string",
"example": "my-metric"
},
"_metric": {
"$ref": "#/components/schemas/MetricListingRep"
},
"environments": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"production",
"test",
"my-environment"
]
},
"_environmentSettings": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/ExperimentEnvironmentSettingRep"
}
}
}
},
"Link": {
"type": "object",
"properties": {
"href": {
"type": "string"
},
"type": {
"type": "string"
}
}
},
"MaintainerRep": {
"type": "object",
"properties": {
"member": {
"description": "Details on the member who maintains this resource",
"$ref": "#/components/schemas/MemberSummary"
},
"team": {
"description": "Details on the team that maintains this resource",
"$ref": "#/components/schemas/MemberTeamSummaryRep"
}
}
},
"MaintainerTeam": {
"type": "object",
"required": [
"key",
"name"
],
"properties": {
"key": {
"type": "string",
"description": "The key of the maintainer team",
"example": "team-key-123abc"
},
"name": {
"type": "string",
"description": "A human-friendly name for the maintainer team",
"example": "Example team"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"parent": {
"href": "/api/v2/teams",
"type": "application/json"
},
"roles": {
"href": "/api/v2/teams/example-team/roles",
"type": "application/json"
},
"self": {
"href": "/api/v2/teams/example-team",
"type": "application/json"
}
}
}
}
},
"Member": {
"type": "object",
"required": [
"_links",
"_id",
"role",
"email",
"_pendingInvite",
"_verified",
"customRoles",
"mfa",
"_lastSeen",
"creationDate"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"_id": {
"type": "string",
"description": "The member's ID",
"example": "507f1f77bcf86cd799439011"
},
"firstName": {
"type": "string",
"description": "The member's first name",
"example": "Ariel"
},
"lastName": {
"type": "string",
"description": "The member's last name",
"example": "Flores"
},
"role": {
"type": "string",
"description": "The member's base role. If the member has no additional roles, this role will be in effect.",
"example": "reader"
},
"email": {
"type": "string",
"description": "The member's email address",
"example": "ariel@acme.com"
},
"_pendingInvite": {
"type": "boolean",
"description": "Whether the member has a pending invitation",
"example": false
},
"_verified": {
"type": "boolean",
"description": "Whether the member's email address has been verified",
"example": true
},
"_pendingEmail": {
"type": "string",
"description": "The member's email address before it has been verified, for accounts where email verification is required"
},
"customRoles": {
"type": "array",
"description": "The set of additional roles, besides the base role, assigned to the member",
"items": {
"type": "string"
},
"example": [
"devOps",
"backend-devs"
]
},
"mfa": {
"type": "string",
"description": "Whether multi-factor authentication is enabled for this member"
},
"excludedDashboards": {
"type": "array",
"description": "Default dashboards that the member has chosen to ignore",
"items": {
"type": "string"
}
},
"_lastSeen": {
"description": "The member's last session date (as Unix milliseconds since epoch)",
"example": "1608260796147",
"$ref": "#/components/schemas/UnixMillis"
},
"_lastSeenMetadata": {
"description": "Additional metadata associated with the member's last session, for example, whether a token was used",
"$ref": "#/components/schemas/LastSeenMetadata"
},
"_integrationMetadata": {
"description": "Details on the member account in an external source, if this member is provisioned externally",
"$ref": "#/components/schemas/IntegrationMetadata"
},
"teams": {
"type": "array",
"description": "Details on the teams this member is assigned to",
"items": {
"$ref": "#/components/schemas/MemberTeamSummaryRep"
}
},
"permissionGrants": {
"type": "array",
"description": "A list of permission grants. Permission grants allow a member to have access to a specific action, without having to create or update a custom role.",
"items": {
"$ref": "#/components/schemas/MemberPermissionGrantSummaryRep"
}
},
"creationDate": {
"description": "Timestamp of when the member was created",
"example": "1628001602644",
"$ref": "#/components/schemas/UnixMillis"
},
"oauthProviders": {
"type": "array",
"description": "A list of OAuth providers",
"items": {
"$ref": "#/components/schemas/OAuthProviderKind"
}
},
"version": {
"type": "integer",
"description": "Version of the current configuration",
"example": 1
},
"roleAttributes": {
"description": "The role attributes for the member",
"$ref": "#/components/schemas/RoleAttributeMap"
}
}
},
"MemberDataRep": {
"type": "object",
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
}
},
"_id": {
"type": "string",
"description": "The member ID",
"example": "507f1f77bcf86cd799439011"
},
"email": {
"type": "string",
"description": "The member email",
"example": "ariel@acme.com"
},
"firstName": {
"type": "string",
"description": "The member first name",
"example": "Ariel"
},
"lastName": {
"type": "string",
"description": "The member last name",
"example": "Flores"
}
}
},
"MemberImportItem": {
"type": "object",
"required": [
"status",
"value"
],
"properties": {
"message": {
"type": "string",
"description": "An error message, including CSV line number, if the status is error"
},
"status": {
"type": "string",
"description": "Whether this member can be successfully imported (success) or not (error). Even if the status is success, members are only added to a team on a 201 response.",
"example": "error"
},
"value": {
"type": "string",
"description": "The email address for the member requested to be added to this team. May be blank or an error, such as 'invalid email format', if the email address cannot be found or parsed.",
"example": "new-team-member@acme.com"
}
}
},
"MemberPermissionGrantSummaryRep": {
"type": "object",
"required": [
"resource"
],
"properties": {
"actionSet": {
"type": "string",
"description": "The name of the group of related actions to allow. A permission grant may have either an actionSet or a list of actions but not both at the same time."
},
"actions": {
"type": "array",
"description": "A list of actions to allow. A permission grant may have either an actionSet or a list of actions but not both at the same time.",
"items": {
"type": "string"
},
"example": [
"maintainTeam"
]
},
"resource": {
"type": "string",
"description": "The resource for which the actions are allowed",
"example": "team/qa-team"
}
}
},
"MemberSummary": {
"type": "object",
"required": [
"_links",
"_id",
"role",
"email"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
}
},
"_id": {
"type": "string",
"description": "The member's ID",
"example": "569f183514f4432160000007"
},
"firstName": {
"type": "string",
"description": "The member's first name",
"example": "Ariel"
},
"lastName": {
"type": "string",
"description": "The member's last name",
"example": "Flores"
},
"role": {
"type": "string",
"description": "The member's base role. If the member has no additional roles, this role will be in effect.",
"example": "admin"
},
"email": {
"type": "string",
"description": "The member's email address",
"example": "ariel@acme.com"
}
}
},
"MemberTeamSummaryRep": {
"type": "object",
"required": [
"customRoleKeys",
"key",
"name"
],
"properties": {
"customRoleKeys": {
"type": "array",
"description": "A list of keys of the custom roles this team has access to",
"items": {
"type": "string"
},
"example": [
"access-to-test-projects"
]
},
"key": {
"type": "string",
"description": "The team key",
"example": "team-key-123abc"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
}
},
"name": {
"type": "string",
"description": "The team name",
"example": "QA Team"
}
}
},
"MemberTeamsPostInput": {
"type": "object",
"required": [
"teamKeys"
],
"properties": {
"teamKeys": {
"type": "array",
"description": "List of team keys",
"items": {
"type": "string"
},
"example": [
"team1",
"team2"
]
}
}
},
"Members": {
"type": "object",
"required": [
"items",
"_links"
],
"properties": {
"items": {
"type": "array",
"description": "An array of members",
"items": {
"$ref": "#/components/schemas/Member"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"totalCount": {
"type": "integer",
"description": "The number of members returned"
}
}
},
"MethodNotAllowedErrorRep": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"description": "Specific error code encountered",
"example": "method_not_allowed"
},
"message": {
"type": "string",
"description": "Description of the error",
"example": "Method not allowed"
}
}
},
"MetricCollectionRep": {
"type": "object",
"properties": {
"items": {
"type": "array",
"description": "An array of metrics",
"items": {
"$ref": "#/components/schemas/MetricListingRep"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"self": {
"href": "/api/v2/metrics/my-project?limit=20",
"type": "application/json"
}
}
},
"totalCount": {
"type": "integer"
}
}
},
"MetricDataSourceRefRep": {
"type": "object",
"required": [
"key"
],
"properties": {
"key": {
"type": "string"
},
"environmentKey": {
"type": "string"
},
"_name": {
"type": "string"
},
"_integrationKey": {
"type": "string"
}
}
},
"MetricEventDefaultRep": {
"type": "object",
"properties": {
"disabled": {
"type": "boolean",
"description": "Whether to disable defaulting missing unit events when calculating results. Defaults to false"
},
"value": {
"type": "number",
"description": "The default value applied to missing unit events. Set to 0 when disabled is false. No other values are currently supported.",
"example": 0
}
}
},
"MetricGroupCollectionRep": {
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"description": "An array of metric groups",
"items": {
"$ref": "#/components/schemas/MetricGroupRep"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"parent": {
"href": "/api/v2/projects/my-project",
"type": "application/json"
},
"self": {
"href": "/api/v2/projects/my-project/metric-groups",
"type": "application/json"
}
}
},
"totalCount": {
"type": "integer"
}
}
},
"MetricGroupPost": {
"type": "object",
"required": [
"name",
"kind",
"maintainerId",
"tags",
"metrics"
],
"properties": {
"key": {
"type": "string",
"description": "A unique key to reference the metric group",
"example": "metric-group-key-123abc"
},
"name": {
"type": "string",
"description": "A human-friendly name for the metric group",
"example": "My metric group"
},
"kind": {
"type": "string",
"description": "The type of the metric group",
"example": "funnel",
"enum": [
"funnel",
"standard",
"guardrail"
]
},
"description": {
"type": "string",
"description": "Description of the metric group",
"example": "Description of the metric group"
},
"maintainerId": {
"type": "string",
"description": "The ID of the member who maintains this metric group",
"example": "569fdeadbeef1644facecafe"
},
"tags": {
"type": "array",
"description": "Tags for the metric group",
"items": {
"type": "string"
},
"example": [
"ops"
]
},
"metrics": {
"type": "array",
"description": "An ordered list of the metrics in this metric group",
"items": {
"$ref": "#/components/schemas/MetricInMetricGroupInput"
}
}
}
},
"MetricGroupRep": {
"type": "object",
"required": [
"_id",
"key",
"name",
"kind",
"_links",
"tags",
"_creationDate",
"_lastModified",
"maintainer",
"metrics",
"_version"
],
"properties": {
"_id": {
"type": "string",
"description": "The ID of this metric group",
"example": "bc3e5be1-02d2-40c7-9926-26d0aacd7aab"
},
"key": {
"type": "string",
"description": "A unique key to reference the metric group",
"example": "metric-group-key-123abc"
},
"name": {
"type": "string",
"description": "A human-friendly name for the metric group",
"example": "My metric group"
},
"kind": {
"type": "string",
"description": "The type of the metric group",
"example": "funnel",
"enum": [
"funnel",
"standard",
"guardrail"
]
},
"description": {
"type": "string",
"description": "Description of the metric group",
"example": "Description of the metric group"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"parent": {
"href": "/api/v2/projects/my-project",
"type": "application/json"
},
"self": {
"href": "/api/v2/projects/my-project/metric-groups/my-metric-group",
"type": "application/json"
}
}
},
"_access": {
"description": "Details on the allowed and denied actions for this metric group",
"$ref": "#/components/schemas/Access"
},
"tags": {
"type": "array",
"description": "Tags for the metric group",
"items": {
"type": "string"
},
"example": [
"ops"
]
},
"_creationDate": {
"description": "Timestamp of when the metric group was created",
"example": "1628192791148",
"$ref": "#/components/schemas/UnixMillis"
},
"_lastModified": {
"description": "Timestamp of when the metric group was last modified",
"example": "1628192791148",
"$ref": "#/components/schemas/UnixMillis"
},
"maintainer": {
"description": "The maintainer of this metric",
"$ref": "#/components/schemas/MaintainerRep"
},
"metrics": {
"type": "array",
"description": "An ordered list of the metrics in this metric group",
"items": {
"$ref": "#/components/schemas/MetricInGroupRep"
}
},
"_version": {
"type": "integer",
"description": "The version of this metric group",
"example": 1
},
"experiments": {
"description": "Experiments that use this metric group. Only included if specified in the expand query parameter in a getMetricGroup request.",
"$ref": "#/components/schemas/DependentExperimentListRep"
},
"experimentCount": {
"type": "integer",
"description": "The number of experiments using this metric group",
"example": 0
},
"activeExperimentCount": {
"type": "integer",
"description": "The number of active experiments using this metric group",
"example": 0
},
"activeGuardedRolloutCount": {
"type": "integer",
"description": "The number of active guarded rollouts using this metric group",
"example": 0
}
}
},
"MetricInGroupRep": {
"type": "object",
"required": [
"key",
"name",
"kind",
"_links"
],
"properties": {
"key": {
"type": "string",
"description": "The metric key",
"example": "metric-key-123abc"
},
"_versionId": {
"type": "string",
"description": "The version ID of the metric",
"example": "version-id-123abc"
},
"name": {
"type": "string",
"description": "The metric name",
"example": "Example metric"
},
"kind": {
"type": "string",
"description": "The kind of event the metric tracks",
"example": "custom",
"enum": [
"pageview",
"click",
"custom"
]
},
"isNumeric": {
"type": "boolean",
"description": "For custom metrics, whether to track numeric changes in value against a baseline (true) or to track a conversion when an end user takes an action (false).",
"example": true
},
"unitAggregationType": {
"type": "string",
"description": "The type of unit aggregation to use for the metric",
"example": "sum",
"enum": [
"sum",
"average"
]
},
"eventKey": {
"type": "string",
"description": "The event key sent with the metric. Only relevant for custom metrics.",
"example": "event-key-123abc"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"self": {
"href": "/api/v2/metrics/my-project/my-metric",
"type": "application/json"
}
}
},
"nameInGroup": {
"type": "string",
"description": "Name of the metric when used within the associated metric group. Can be different from the original name of the metric. Required if and only if the metric group is a funnel.",
"example": "Step 1"
},
"randomizationUnits": {
"type": "array",
"description": "The randomization units for the metric",
"items": {
"type": "string"
},
"example": [
"user"
]
}
}
},
"MetricInMetricGroupInput": {
"type": "object",
"required": [
"key",
"nameInGroup"
],
"properties": {
"key": {
"type": "string",
"description": "The metric key",
"example": "metric-key-123abc"
},
"nameInGroup": {
"type": "string",
"description": "Name of the metric when used within the associated metric group. Can be different from the original name of the metric",
"example": "Step 1"
}
}
},
"MetricInput": {
"type": "object",
"required": [
"key"
],
"properties": {
"key": {
"type": "string",
"description": "The metric key",
"example": "metric-key-123abc"
},
"isGroup": {
"type": "boolean",
"description": "Whether this is a metric group (true) or a metric (false). Defaults to false",
"example": true
},
"primary": {
"type": "boolean",
"description": "Deprecated, use primarySingleMetricKey and primaryFunnelKey. Whether this is a primary metric (true) or a secondary metric (false)",
"example": true,
"deprecated": true
}
}
},
"MetricListingRep": {
"type": "object",
"required": [
"_id",
"_versionId",
"key",
"name",
"kind",
"_links",
"tags",
"_creationDate",
"dataSource"
],
"properties": {
"experimentCount": {
"type": "integer",
"description": "The number of experiments using this metric",
"example": 0
},
"metricGroupCount": {
"type": "integer",
"description": "The number of metric groups using this metric",
"example": 0
},
"activeExperimentCount": {
"type": "integer",
"description": "The number of active experiments using this metric",
"example": 2
},
"activeGuardedRolloutCount": {
"type": "integer",
"description": "The number of active guarded rollouts using this metric",
"example": 1
},
"_id": {
"type": "string",
"description": "The ID of this metric",
"example": "5902deadbeef667524a01290"
},
"_versionId": {
"type": "string",
"description": "The version ID of the metric",
"example": "version-id-123abc"
},
"_version": {
"type": "integer",
"description": "Version of the metric",
"example": 1
},
"key": {
"type": "string",
"description": "A unique key to reference the metric",
"example": "metric-key-123abc"
},
"name": {
"type": "string",
"description": "A human-friendly name for the metric",
"example": "My metric"
},
"kind": {
"type": "string",
"description": "The kind of event the metric tracks",
"example": "custom",
"enum": [
"pageview",
"click",
"custom"
]
},
"_attachedFlagCount": {
"type": "integer",
"description": "The number of feature flags currently attached to this metric",
"example": 0
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"parent": {
"href": "/api/v2/metrics/my-project",
"type": "application/json"
},
"self": {
"href": "/api/v2/metrics/my-project/my-metric",
"type": "application/json"
}
}
},
"_site": {
"description": "Details on how to access the metric in the LaunchDarkly UI",
"example": "{\"href\":\"/experiments/metrics/my-metric/edit\",\"type\":\"text/html\"}",
"$ref": "#/components/schemas/Link"
},
"_access": {
"description": "Details on the allowed and denied actions for this metric",
"$ref": "#/components/schemas/Access"
},
"tags": {
"type": "array",
"description": "Tags for the metric",
"items": {
"type": "string"
},
"example": []
},
"_creationDate": {
"description": "Timestamp of when the metric was created",
"example": "1628192791148",
"$ref": "#/components/schemas/UnixMillis"
},
"lastModified": {
"$ref": "#/components/schemas/Modification"
},
"maintainerId": {
"type": "string",
"description": "The ID of the member who maintains this metric",
"example": "569fdeadbeef1644facecafe"
},
"_maintainer": {
"description": "Details on the member who maintains this metric",
"example": "{\"_links\":{\"self\":{\"href\":\"/api/v2/members/569fdeadbeef1644facecafe\",\"type\":\"application/json\"}},\"_id\":\"569fdeadbeef1644facecafe\",\"firstName\":\"Ariel\",\"lastName\":\"Flores\",\"role\":\"owner\",\"email\":\"ariel@acme.com\"}",
"$ref": "#/components/schemas/MemberSummary"
},
"description": {
"type": "string",
"description": "Description of the metric"
},
"category": {
"type": "string",
"description": "The category of the metric",
"example": "Error monitoring"
},
"isNumeric": {
"type": "boolean",
"description": "For custom metrics, whether to track numeric changes in value against a baseline (true) or to track a conversion when an end user takes an action (false).",
"example": true
},
"successCriteria": {
"type": "string",
"description": "For custom metrics, the success criteria",
"enum": [
"HigherThanBaseline",
"LowerThanBaseline"
]
},
"unit": {
"type": "string",
"description": "For numeric custom metrics, the unit of measure"
},
"eventKey": {
"type": "string",
"description": "For custom metrics, the event key to use in your code",
"example": "Order placed"
},
"randomizationUnits": {
"type": "array",
"description": "An array of randomization units allowed for this metric",
"items": {
"type": "string"
},
"example": [
"user"
]
},
"filters": {
"description": "The filters narrowing down the audience based on context attributes or event properties.",
"example": "{\"type\":\"group\",\"op\":\"and\",\"values\":[{\"type\":\"contextAttribute\",\"op\":\"in\",\"contextKind\":\"user\",\"attribute\":\"country\",\"values\":[\"JP\"],\"negate\":false},{\"type\":\"eventProperty\",\"op\":\"in\",\"attribute\":\"category\",\"values\":[\"magic-wands\"],\"negate\":false}]}",
"$ref": "#/components/schemas/Filter"
},
"unitAggregationType": {
"type": "string",
"description": "The method by which multiple unit event values are aggregated",
"example": "average",
"enum": [
"average",
"sum"
]
},
"analysisType": {
"type": "string",
"description": "The method for analyzing metric events",
"example": "mean",
"enum": [
"mean",
"percentile"
]
},
"percentileValue": {
"type": "integer",
"description": "The percentile for the analysis method. An integer denoting the target percentile between 0 and 100. Required when analysisType is percentile.",
"example": 95
},
"eventDefault": {
"$ref": "#/components/schemas/MetricEventDefaultRep"
},
"dataSource": {
"$ref": "#/components/schemas/MetricDataSourceRefRep"
},
"lastSeen": {
"description": "Timestamp of most recent data for this metric, at one-hour fidelity",
"$ref": "#/components/schemas/UnixMillis"
},
"archived": {
"type": "boolean",
"description": "Whether the metric version is archived"
},
"archivedAt": {
"description": "Timestamp when the metric version was archived",
"example": "1609459200000",
"$ref": "#/components/schemas/UnixMillis"
},
"selector": {
"type": "string",
"description": "For click metrics, the CSS selectors"
},
"urls": {
"description": "For click and pageview metrics, the target URLs",
"example": "[{\"kind\":\"exact\",\"url\":\"https://www.example.com/page1\"}]",
"$ref": "#/components/schemas/UrlMatchers"
}
}
},
"MetricPost": {
"type": "object",
"required": [
"key",
"kind"
],
"properties": {
"key": {
"type": "string",
"description": "A unique key to reference the metric",
"example": "metric-key-123abc"
},
"name": {
"type": "string",
"description": "A human-friendly name for the metric",
"example": "Example metric"
},
"description": {
"type": "string",
"description": "Description of the metric",
"example": "optional description"
},
"kind": {
"type": "string",
"description": "The kind of event your metric will track",
"example": "custom",
"enum": [
"pageview",
"click",
"custom"
]
},
"selector": {
"type": "string",
"description": "One or more CSS selectors. Required for click metrics only.",
"example": ".dropdown-toggle"
},
"urls": {
"type": "array",
"description": "One or more target URLs. Required for click and pageview metrics only.",
"items": {
"$ref": "#/components/schemas/UrlPost"
},
"example": "invalid example"
},
"isNumeric": {
"type": "boolean",
"description": "Whether to track numeric changes in value against a baseline (true) or to track a conversion when an end user takes an action (false). Required for custom metrics only.",
"example": false
},
"unit": {
"type": "string",
"description": "The unit of measure. Applicable for numeric custom metrics only.",
"example": "orders"
},
"eventKey": {
"type": "string",
"description": "The event key to use in your code. Required for custom conversion/binary and custom numeric metrics only.",
"example": "Order placed"
},
"successCriteria": {
"type": "string",
"description": "Success criteria. Required for custom numeric metrics, optional for custom conversion metrics.",
"example": "HigherThanBaseline",
"enum": [
"HigherThanBaseline",
"LowerThanBaseline"
]
},
"tags": {
"type": "array",
"description": "Tags for the metric",
"items": {
"type": "string"
},
"example": [
"example-tag"
]
},
"randomizationUnits": {
"type": "array",
"description": "An array of randomization units allowed for this metric",
"items": {
"type": "string"
},
"example": [
"user"
]
},
"maintainerId": {
"type": "string",
"description": "The ID of the member who maintains this metric",
"example": "569fdeadbeef1644facecafe"
},
"unitAggregationType": {
"type": "string",
"description": "The method by which multiple unit event values are aggregated",
"example": "average",
"enum": [
"average",
"sum"
]
},
"analysisType": {
"type": "string",
"description": "The method for analyzing metric events",
"example": "mean"
},
"percentileValue": {
"type": "integer",
"description": "The percentile for the analysis method. An integer denoting the target percentile between 0 and 100. Required when analysisType is percentile.",
"example": 95
},
"eventDefault": {
"$ref": "#/components/schemas/MetricEventDefaultRep"
},
"dataSource": {
"$ref": "#/components/schemas/MetricDataSourceRefRep"
},
"filters": {
"description": "Filters for the metric to exclude certain events from being included. This is only supported for custom metrics.",
"$ref": "#/components/schemas/EventFilter"
}
}
},
"MetricRep": {
"type": "object",
"required": [
"_id",
"_versionId",
"key",
"name",
"kind",
"_links",
"tags",
"_creationDate",
"dataSource"
],
"properties": {
"experimentCount": {
"type": "integer",
"description": "The number of experiments using this metric",
"example": 0
},
"metricGroupCount": {
"type": "integer",
"description": "The number of metric groups using this metric",
"example": 0
},
"activeExperimentCount": {
"type": "integer",
"description": "The number of active experiments using this metric",
"example": 2
},
"activeGuardedRolloutCount": {
"type": "integer",
"description": "The number of active guarded rollouts using this metric",
"example": 1
},
"_id": {
"type": "string",
"description": "The ID of this metric",
"example": "5902deadbeef667524a01290"
},
"_versionId": {
"type": "string",
"description": "The version ID of the metric",
"example": "version-id-123abc"
},
"_version": {
"type": "integer",
"description": "Version of the metric",
"example": 1
},
"key": {
"type": "string",
"description": "A unique key to reference the metric",
"example": "metric-key-123abc"
},
"name": {
"type": "string",
"description": "A human-friendly name for the metric",
"example": "My metric"
},
"kind": {
"type": "string",
"description": "The kind of event the metric tracks",
"example": "custom",
"enum": [
"pageview",
"click",
"custom"
]
},
"_attachedFlagCount": {
"type": "integer",
"description": "The number of feature flags currently attached to this metric",
"example": 0
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"parent": {
"href": "/api/v2/metrics/my-project",
"type": "application/json"
},
"self": {
"href": "/api/v2/metrics/my-project/my-metric",
"type": "application/json"
}
}
},
"_site": {
"description": "Details on how to access the metric in the LaunchDarkly UI",
"example": "{\"href\":\"/experiments/metrics/my-metric/edit\",\"type\":\"text/html\"}",
"$ref": "#/components/schemas/Link"
},
"_access": {
"description": "Details on the allowed and denied actions for this metric",
"$ref": "#/components/schemas/Access"
},
"tags": {
"type": "array",
"description": "Tags for the metric",
"items": {
"type": "string"
},
"example": []
},
"_creationDate": {
"description": "Timestamp of when the metric was created",
"example": "1628192791148",
"$ref": "#/components/schemas/UnixMillis"
},
"lastModified": {
"$ref": "#/components/schemas/Modification"
},
"maintainerId": {
"type": "string",
"description": "The ID of the member who maintains this metric",
"example": "569fdeadbeef1644facecafe"
},
"_maintainer": {
"description": "Details on the member who maintains this metric",
"example": "{\"_links\":{\"self\":{\"href\":\"/api/v2/members/569fdeadbeef1644facecafe\",\"type\":\"application/json\"}},\"_id\":\"569fdeadbeef1644facecafe\",\"firstName\":\"Ariel\",\"lastName\":\"Flores\",\"role\":\"owner\",\"email\":\"ariel@acme.com\"}",
"$ref": "#/components/schemas/MemberSummary"
},
"description": {
"type": "string",
"description": "Description of the metric"
},
"category": {
"type": "string",
"description": "The category of the metric",
"example": "Error monitoring"
},
"isNumeric": {
"type": "boolean",
"description": "For custom metrics, whether to track numeric changes in value against a baseline (true) or to track a conversion when an end user takes an action (false).",
"example": true
},
"successCriteria": {
"type": "string",
"description": "For custom metrics, the success criteria",
"enum": [
"HigherThanBaseline",
"LowerThanBaseline"
]
},
"unit": {
"type": "string",
"description": "For numeric custom metrics, the unit of measure"
},
"eventKey": {
"type": "string",
"description": "For custom metrics, the event key to use in your code",
"example": "Order placed"
},
"randomizationUnits": {
"type": "array",
"description": "An array of randomization units allowed for this metric",
"items": {
"type": "string"
},
"example": [
"user"
]
},
"filters": {
"description": "The filters narrowing down the audience based on context attributes or event properties.",
"example": "{\"type\":\"group\",\"op\":\"and\",\"values\":[{\"type\":\"contextAttribute\",\"op\":\"in\",\"contextKind\":\"user\",\"attribute\":\"country\",\"values\":[\"JP\"],\"negate\":false},{\"type\":\"eventProperty\",\"op\":\"in\",\"attribute\":\"category\",\"values\":[\"magic-wands\"],\"negate\":false}]}",
"$ref": "#/components/schemas/Filter"
},
"unitAggregationType": {
"type": "string",
"description": "The method by which multiple unit event values are aggregated",
"example": "average",
"enum": [
"average",
"sum"
]
},
"analysisType": {
"type": "string",
"description": "The method for analyzing metric events",
"example": "mean",
"enum": [
"mean",
"percentile"
]
},
"percentileValue": {
"type": "integer",
"description": "The percentile for the analysis method. An integer denoting the target percentile between 0 and 100. Required when analysisType is percentile.",
"example": 95
},
"eventDefault": {
"$ref": "#/components/schemas/MetricEventDefaultRep"
},
"dataSource": {
"$ref": "#/components/schemas/MetricDataSourceRefRep"
},
"lastSeen": {
"description": "Timestamp of most recent data for this metric, at one-hour fidelity",
"$ref": "#/components/schemas/UnixMillis"
},
"archived": {
"type": "boolean",
"description": "Whether the metric version is archived"
},
"archivedAt": {
"description": "Timestamp when the metric version was archived",
"example": "1609459200000",
"$ref": "#/components/schemas/UnixMillis"
},
"selector": {
"type": "string",
"description": "For click metrics, the CSS selectors"
},
"urls": {
"description": "For click and pageview metrics, the target URLs",
"example": "[{\"kind\":\"exact\",\"url\":\"https://www.example.com/page1\"}]",
"$ref": "#/components/schemas/UrlMatchers"
},
"experiments": {
"description": "Experiments that use this metric, including those using a metric group that contains this metric",
"$ref": "#/components/schemas/DependentExperimentListRep"
},
"metricGroups": {
"type": "array",
"description": "Metric groups that use this metric",
"items": {
"$ref": "#/components/schemas/DependentMetricGroupRep"
}
},
"lastUsedInExperiment": {
"description": "The most recent experiment that used this metric",
"$ref": "#/components/schemas/DependentExperimentRep"
},
"lastUsedInGuardedRollout": {
"description": "The most recent guarded rollout that used this metric",
"$ref": "#/components/schemas/DependentMeasuredRolloutRep"
},
"isActive": {
"type": "boolean",
"description": "Whether the metric is active",
"example": true
},
"_attachedFeatures": {
"type": "array",
"description": "Details on the flags attached to this metric",
"items": {
"$ref": "#/components/schemas/FlagListingRep"
}
}
}
},
"MetricV2Rep": {
"type": "object",
"required": [
"key",
"name",
"kind",
"_links"
],
"properties": {
"key": {
"type": "string",
"description": "The metric key",
"example": "metric-key-123abc"
},
"_versionId": {
"type": "string",
"description": "The version ID of the metric",
"example": "version-id-123abc"
},
"name": {
"type": "string",
"description": "The metric name",
"example": "Example metric"
},
"kind": {
"type": "string",
"description": "The kind of event the metric tracks",
"example": "custom",
"enum": [
"pageview",
"click",
"custom"
]
},
"isNumeric": {
"type": "boolean",
"description": "For custom metrics, whether to track numeric changes in value against a baseline (true) or to track a conversion when an end user takes an action (false).",
"example": true
},
"unitAggregationType": {
"type": "string",
"description": "The type of unit aggregation to use for the metric",
"example": "sum",
"enum": [
"sum",
"average"
]
},
"eventKey": {
"type": "string",
"description": "The event key sent with the metric. Only relevant for custom metrics.",
"example": "event-key-123abc"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"self": {
"href": "/api/v2/metrics/my-project/my-metric",
"type": "application/json"
}
}
}
}
},
"MetricsInput": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MetricInput"
}
},
"MigrationFlagStageCount": {
"type": "integer"
},
"MigrationSafetyIssueRep": {
"type": "object",
"properties": {
"causingRuleId": {
"type": "string",
"description": "The ID of the rule which caused this issue"
},
"affectedRuleIds": {
"type": "array",
"description": "A list of the IDs of the rules which are affected by this issue. fallthrough is a sentinel value for the default rule.",
"items": {
"type": "string"
}
},
"issue": {
"type": "string",
"description": "A description of the issue that causingRuleId has caused for affectedRuleIds."
},
"oldSystemAffected": {
"type": "boolean",
"description": "Whether the changes caused by causingRuleId bring inconsistency to the old system"
}
}
},
"MigrationSettingsPost": {
"type": "object",
"required": [
"stageCount"
],
"properties": {
"contextKind": {
"type": "string",
"description": "Context kind for a migration with 6 stages, where data is being moved"
},
"stageCount": {
"enum": [
"2",
"4",
"6"
],
"$ref": "#/components/schemas/MigrationFlagStageCount"
}
}
},
"Modification": {
"type": "object",
"properties": {
"date": {
"type": "string",
"format": "date-time",
"example": "2021-08-05T19:46:31.148082Z"
}
}
},
"MultiEnvironmentDependentFlag": {
"type": "object",
"required": [
"key",
"environments"
],
"properties": {
"name": {
"type": "string",
"description": "The flag name",
"example": "Example dependent flag"
},
"key": {
"type": "string",
"description": "The flag key",
"example": "dependent-flag-key-123abc"
},
"environments": {
"type": "array",
"description": "A list of environments in which the dependent flag appears",
"items": {
"$ref": "#/components/schemas/DependentFlagEnvironment"
}
}
}
},
"MultiEnvironmentDependentFlags": {
"type": "object",
"required": [
"items",
"_links",
"_site"
],
"properties": {
"items": {
"type": "array",
"description": "An array of dependent flags with their environment information",
"items": {
"$ref": "#/components/schemas/MultiEnvironmentDependentFlag"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"_site": {
"description": "Details on how to access the prerequisite flag in the LaunchDarkly UI",
"example": "{ \"href\": \"/example-project/~/features/example-prereq-flag\", \"type\": \"text/html\" }",
"$ref": "#/components/schemas/Link"
}
}
},
"NamingConvention": {
"type": "object",
"properties": {
"case": {
"type": "string",
"description": "The casing convention to enforce for new flag keys in this project",
"example": "kebabCase",
"enum": [
"camelCase",
"upperCamelCase",
"snakeCase",
"kebabCase",
"constantCase"
]
},
"prefix": {
"type": "string",
"description": "The prefix to enforce for new flag keys in this project",
"example": "enable-"
}
}
},
"NewMemberForm": {
"type": "object",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"description": "The member's email",
"example": "sandy@acme.com"
},
"password": {
"type": "string",
"description": "The member's password",
"example": "***"
},
"firstName": {
"type": "string",
"description": "The member's first name",
"example": "Ariel"
},
"lastName": {
"type": "string",
"description": "The member's last name",
"example": "Flores"
},
"role": {
"type": "string",
"description": "The member's initial role, if you are using a base role for the initial role",
"example": "reader",
"enum": [
"reader",
"writer",
"admin",
"no_access"
]
},
"customRoles": {
"type": "array",
"description": "An array of the member's initial roles, if you are using custom roles or preset roles provided by LaunchDarkly",
"items": {
"type": "string"
},
"example": [
"customRole1",
"launchdarkly-developer"
]
},
"teamKeys": {
"type": "array",
"description": "An array of the member's teams",
"items": {
"type": "string"
},
"example": [
"team-1",
"team-2"
]
},
"roleAttributes": {
"description": "An object of role attributes for the member",
"example": "{\"developerProjectKeys\": [\"default\"]}",
"$ref": "#/components/schemas/RoleAttributeMap"
}
}
},
"NewMemberFormListPost": {
"type": "array",
"items": {
"$ref": "#/components/schemas/NewMemberForm"
}
},
"NotFoundErrorRep": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"description": "Specific error code encountered",
"example": "not_found"
},
"message": {
"type": "string",
"description": "Description of the error",
"example": "Invalid resource identifier"
}
}
},
"OAuthProviderKind": {
"type": "string"
},
"ObjectId": {
"type": "string"
},
"Operator": {
"type": "string"
},
"OptionsArray": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
"ParameterDefault": {
"type": "object",
"properties": {
"value": {
"description": "The default value for the given parameter"
},
"booleanVariationValue": {
"type": "boolean",
"description": "Variation value for boolean flags. Not applicable for non-boolean flags."
},
"ruleClause": {
"description": "Metadata related to add rule instructions",
"$ref": "#/components/schemas/RuleClause"
}
}
},
"ParameterRep": {
"type": "object",
"properties": {
"variationId": {
"type": "string"
},
"flagKey": {
"type": "string"
}
}
},
"ParentResourceRep": {
"type": "object",
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
}
},
"name": {
"type": "string",
"description": "The name of the parent resource"
},
"resource": {
"type": "string",
"description": "The parent's resource specifier"
}
}
},
"PatchFailedErrorRep": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"description": "Specific error code encountered",
"example": "patch_failed"
},
"message": {
"type": "string",
"description": "Description of the error",
"example": "Unprocessable entity. Could not apply patch."
}
}
},
"PatchOperation": {
"type": "object",
"required": [
"op",
"path"
],
"properties": {
"op": {
"type": "string",
"description": "The type of operation to perform",
"example": "replace"
},
"path": {
"type": "string",
"description": "A JSON Pointer string specifying the part of the document to operate on",
"example": "/exampleField"
},
"value": {
"description": "A JSON value used in \"add\", \"replace\", and \"test\" operations",
"example": "new example value"
}
}
},
"PatchWithComment": {
"type": "object",
"required": [
"patch"
],
"properties": {
"patch": {
"description": "A JSON patch representation of the change to make",
"$ref": "#/components/schemas/JSONPatch"
},
"comment": {
"type": "string",
"description": "Optional comment"
}
}
},
"Phase": {
"type": "object",
"required": [
"id",
"audiences",
"name"
],
"properties": {
"id": {
"type": "string",
"description": "The phase ID",
"example": "1234a56b7c89d012345e678f"
},
"audiences": {
"description": "An ordered list of the audiences for this release phase. Each audience corresponds to a LaunchDarkly environment.",
"$ref": "#/components/schemas/Audiences"
},
"name": {
"type": "string",
"description": "The release phase name",
"example": "Phase 1 - Testing"
},
"configuration": {
"description": "The configuration for the phase's rollout.",
"$ref": "#/components/schemas/PhaseConfiguration"
}
}
},
"PhaseConfiguration": {
"type": "object",
"properties": {}
},
"PhaseInfo": {
"type": "object",
"required": [
"_id",
"name",
"releaseCount"
],
"properties": {
"_id": {
"type": "string",
"description": "The phase ID",
"example": "1234a56b7c89d012345e678f"
},
"name": {
"type": "string",
"description": "The release phase name",
"example": "Phase 1 - Testing"
},
"releaseCount": {
"type": "integer",
"description": "The number of active releases in this phase",
"example": 2
}
}
},
"PhaseStatus": {
"type": "string"
},
"PostFlagScheduledChangesInput": {
"type": "object",
"required": [
"executionDate",
"instructions"
],
"properties": {
"comment": {
"type": "string",
"description": "Optional comment describing the scheduled changes",
"example": "optional comment"
},
"executionDate": {
"description": "When the scheduled changes should be executed",
"example": "1636558831870",
"$ref": "#/components/schemas/UnixMillis"
},
"instructions": {
"description": "The actions to perform on the execution date for these scheduled changes. This should be an array with a single object that looks like {\"kind\": \"scheduled_action\"}. Supported scheduled actions include any semantic patch instructions available when updating a feature flag.",
"example": "[ { \"kind\": \"turnFlagOn\" }]",
"$ref": "#/components/schemas/Instructions"
}
}
},
"Prerequisite": {
"type": "object",
"required": [
"key",
"variation"
],
"properties": {
"key": {
"type": "string"
},
"variation": {
"type": "integer"
}
}
},
"Project": {
"type": "object",
"required": [
"_links",
"_id",
"key",
"includeInSnippetByDefault",
"name",
"tags"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"environments": {
"href": "/api/v2/projects/my-project/environments",
"type": "application/json"
},
"self": {
"href": "/api/v2/projects/my-project",
"type": "application/json"
}
}
},
"_id": {
"type": "string",
"description": "The ID of this project",
"example": "57be1db38b75bf0772d11383"
},
"key": {
"type": "string",
"description": "The key of this project",
"example": "project-key-123abc"
},
"includeInSnippetByDefault": {
"type": "boolean",
"description": "Whether or not flags created in this project are made available to the client-side JavaScript SDK by default",
"example": true
},
"defaultClientSideAvailability": {
"description": "Describes which client-side SDKs can use new flags by default",
"$ref": "#/components/schemas/ClientSideAvailability"
},
"name": {
"type": "string",
"description": "A human-friendly name for the project",
"example": "My Project"
},
"_access": {
"description": "Details on the allowed and denied actions for this project",
"$ref": "#/components/schemas/Access"
},
"tags": {
"type": "array",
"description": "A list of tags for the project",
"items": {
"type": "string"
},
"example": [
"ops"
]
},
"defaultReleasePipelineKey": {
"type": "string",
"description": "The key of the default release pipeline for this project"
},
"environments": {
"description": "A paginated list of environments for the project. By default this field is omitted unless expanded by the client.",
"$ref": "#/components/schemas/Environments"
}
}
},
"ProjectPost": {
"type": "object",
"required": [
"name",
"key"
],
"properties": {
"name": {
"type": "string",
"description": "A human-friendly name for the project.",
"example": "My Project"
},
"key": {
"type": "string",
"description": "A unique key used to reference the project in your code.",
"example": "project-key-123abc"
},
"includeInSnippetByDefault": {
"type": "boolean",
"description": "Whether or not flags created in this project are made available to the client-side JavaScript SDK by default.",
"example": true
},
"defaultClientSideAvailability": {
"description": "Controls which client-side SDKs can use new flags by default.",
"$ref": "#/components/schemas/DefaultClientSideAvailabilityPost"
},
"tags": {
"type": "array",
"description": "Tags for the project",
"items": {
"type": "string"
},
"example": [
"ops"
]
},
"environments": {
"type": "array",
"description": "Creates the provided environments for this project. If omitted default environments will be created instead.",
"items": {
"$ref": "#/components/schemas/EnvironmentPost"
}
},
"namingConvention": {
"description": "The flag key convention for this project. Omit this field if you don't want to enforce any conventions for flag keys.",
"$ref": "#/components/schemas/NamingConvention"
}
}
},
"ProjectRep": {
"type": "object",
"required": [
"_links",
"_id",
"key",
"includeInSnippetByDefault",
"name",
"tags",
"environments"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"environments": {
"href": "/api/v2/projects/my-project/environments",
"type": "application/json"
},
"self": {
"href": "/api/v2/projects/my-project",
"type": "application/json"
}
}
},
"_id": {
"type": "string",
"description": "The ID of this project",
"example": "57be1db38b75bf0772d11383"
},
"key": {
"type": "string",
"description": "The key of this project",
"example": "project-key-123abc"
},
"includeInSnippetByDefault": {
"type": "boolean",
"description": "Whether or not flags created in this project are made available to the client-side JavaScript SDK by default",
"example": true
},
"defaultClientSideAvailability": {
"description": "Describes which client-side SDKs can use new flags by default",
"$ref": "#/components/schemas/ClientSideAvailability"
},
"name": {
"type": "string",
"description": "A human-friendly name for the project",
"example": "My Project"
},
"_access": {
"description": "Details on the allowed and denied actions for this project",
"$ref": "#/components/schemas/Access"
},
"tags": {
"type": "array",
"description": "A list of tags for the project",
"items": {
"type": "string"
},
"example": [
"ops"
]
},
"defaultReleasePipelineKey": {
"type": "string",
"description": "The key of the default release pipeline for this project"
},
"environments": {
"type": "array",
"description": "A list of environments for the project",
"items": {
"$ref": "#/components/schemas/Environment"
}
}
}
},
"ProjectSummary": {
"type": "object",
"required": [
"_id",
"_links",
"key",
"name"
],
"properties": {
"_id": {
"type": "string",
"description": "The ID of this project",
"example": "57be1db38b75bf0772d11383"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"environments": {
"href": "/api/v2/projects/example-project/environments",
"type": "application/json"
},
"self": {
"href": "/api/v2/projects/example-project",
"type": "application/json"
}
}
},
"key": {
"type": "string",
"description": "The project key",
"example": "project-key-123abc"
},
"name": {
"type": "string",
"description": "The project name",
"example": "Example project"
}
}
},
"Projects": {
"type": "object",
"required": [
"_links",
"items"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "A link to this resource.",
"example": {
"self": {
"href": "/api/v2/projects",
"type": "application/json"
}
}
},
"items": {
"type": "array",
"description": "List of projects.",
"items": {
"$ref": "#/components/schemas/Project"
}
},
"totalCount": {
"type": "integer"
}
}
},
"RandomizationSettingsPut": {
"type": "object",
"required": [
"randomizationUnits"
],
"properties": {
"randomizationUnits": {
"type": "array",
"description": "An array of randomization units allowed for this project.",
"items": {
"$ref": "#/components/schemas/RandomizationUnitInput"
}
}
}
},
"RandomizationSettingsRep": {
"type": "object",
"properties": {
"_projectId": {
"type": "string",
"description": "The project ID",
"example": "12345abcde67890fghij"
},
"_projectKey": {
"type": "string",
"description": "The project key",
"example": "project-key-123abc"
},
"randomizationUnits": {
"type": "array",
"description": "An array of the randomization units in this project",
"items": {
"$ref": "#/components/schemas/RandomizationUnitRep"
}
},
"_creationDate": {
"description": "Timestamp of when the experiment was created",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"RandomizationUnitInput": {
"type": "object",
"required": [
"randomizationUnit"
],
"properties": {
"randomizationUnit": {
"type": "string",
"description": "The unit of randomization. Must match the key of an existing context kind in this project.",
"example": "user"
},
"default": {
"type": "boolean",
"description": "If true, any experiment iterations created within this project will default to using this randomization unit. A project can only have one default randomization unit.",
"example": true
},
"standardRandomizationUnit": {
"type": "string",
"description": "(deprecated) This field is deprecated and will be removed. Use randomizationUnit instead.",
"example": "user"
}
}
},
"RandomizationUnitRep": {
"type": "object",
"properties": {
"randomizationUnit": {
"type": "string",
"description": "The unit of randomization. Defaults to user.",
"example": "user"
},
"default": {
"type": "boolean",
"description": "Whether this randomization unit is the default for experiments",
"example": true
},
"_hidden": {
"type": "boolean"
},
"_displayName": {
"type": "string",
"description": "The display name for the randomization unit, displayed in the LaunchDarkly user interface.",
"example": "User"
}
}
},
"RateLimitedErrorRep": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"description": "Specific error code encountered",
"example": "rate_limited"
},
"message": {
"type": "string",
"description": "Description of the error",
"example": "You've exceeded the API rate limit. Try again later."
}
}
},
"RecentTriggerBody": {
"type": "object",
"properties": {
"timestamp": {
"description": "Timestamp of the incoming trigger webhook",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"jsonBody": {
"type": "object",
"additionalProperties": {},
"description": "The marshalled JSON request body for the incoming trigger webhook. If this is empty or contains invalid JSON, the timestamp is recorded but this field will be empty."
}
}
},
"ReferenceRep": {
"type": "object",
"required": [
"path",
"hunks"
],
"properties": {
"path": {
"type": "string",
"description": "File path of the reference",
"example": "/main/index.js"
},
"hint": {
"type": "string",
"description": "Programming language used in the file",
"example": "javascript"
},
"hunks": {
"type": "array",
"items": {
"$ref": "#/components/schemas/HunkRep"
}
}
}
},
"RelatedExperimentRep": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"name": {
"type": "string"
},
"environment": {
"type": "string"
}
}
},
"RelayAutoConfigCollectionRep": {
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"description": "An array of Relay Proxy configurations",
"items": {
"$ref": "#/components/schemas/RelayAutoConfigRep"
}
}
}
},
"RelayAutoConfigPost": {
"type": "object",
"required": [
"name",
"policy"
],
"properties": {
"name": {
"type": "string",
"description": "A human-friendly name for the Relay Proxy configuration"
},
"policy": {
"type": "array",
"description": "A description of what environments and projects the Relay Proxy should include or exclude. To learn more, read [Write an inline policy](https://launchdarkly.com/docs/sdk/relay-proxy/automatic-configuration#write-an-inline-policy).",
"items": {
"$ref": "#/components/schemas/Statement"
}
}
}
},
"RelayAutoConfigRep": {
"type": "object",
"required": [
"_id",
"name",
"policy",
"displayKey",
"creationDate",
"lastModified"
],
"properties": {
"_id": {
"description": "The ID of the Relay Proxy configuration",
"example": "12ab3c45de678910abc12345",
"$ref": "#/components/schemas/ObjectId"
},
"_creator": {
"description": "Details on the member who created this Relay Proxy configuration",
"$ref": "#/components/schemas/MemberSummary"
},
"_access": {
"description": "Details on the allowed and denied actions for this Relay Proxy configuration",
"$ref": "#/components/schemas/Access"
},
"name": {
"type": "string",
"description": "A human-friendly name for the Relay Proxy configuration",
"example": "Relay Proxy Demo Config"
},
"policy": {
"type": "array",
"description": "A description of what environments and projects the Relay Proxy should include or exclude",
"items": {
"$ref": "#/components/schemas/Statement"
}
},
"fullKey": {
"type": "string",
"description": "The Relay Proxy configuration key"
},
"displayKey": {
"type": "string",
"description": "The last few characters of the Relay Proxy configuration key, displayed in the LaunchDarkly UI",
"example": "7f30"
},
"creationDate": {
"description": "Timestamp of when the Relay Proxy configuration was created",
"example": "1628001602644",
"$ref": "#/components/schemas/UnixMillis"
},
"lastModified": {
"description": "Timestamp of when the Relay Proxy configuration was most recently modified",
"example": "1628001602644",
"$ref": "#/components/schemas/UnixMillis"
}
}
},
"Release": {
"type": "object",
"required": [
"name",
"releasePipelineKey",
"releasePipelineDescription",
"phases",
"_version"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"name": {
"type": "string",
"description": "The release pipeline name",
"example": "Example release pipeline"
},
"releasePipelineKey": {
"type": "string",
"description": "The release pipeline key",
"example": "example-release-pipeline"
},
"releasePipelineDescription": {
"type": "string",
"description": "The release pipeline description",
"example": "Our release pipeline for typical testing and deployment"
},
"phases": {
"type": "array",
"description": "An ordered list of the release pipeline phases",
"items": {
"$ref": "#/components/schemas/ReleasePhase"
}
},
"_version": {
"type": "integer",
"description": "The release version",
"example": 1
},
"_releaseVariationId": {
"type": "string",
"description": "The chosen release variation ID to use across all phases of a release"
},
"_canceledAt": {
"description": "Timestamp of when the release was canceled",
"example": "1684262711507",
"$ref": "#/components/schemas/UnixMillis"
}
}
},
"ReleaseAudience": {
"type": "object",
"required": [
"_id",
"name"
],
"properties": {
"_id": {
"type": "string",
"description": "The audience ID",
"example": "1234a56b7c89d012345e678g"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"environment": {
"description": "Details about the environment. If the environment is deleted, this field will be omitted.",
"$ref": "#/components/schemas/EnvironmentSummary"
},
"name": {
"type": "string",
"description": "The release phase name",
"example": "Phase 1 - Testing"
},
"configuration": {
"description": "The audience configuration",
"$ref": "#/components/schemas/AudienceConfiguration"
},
"segmentKeys": {
"type": "array",
"description": "A list of segment keys",
"items": {
"type": "string"
},
"example": [
"segment-key-123abc"
]
},
"status": {
"description": "The audience status",
"example": "active",
"$ref": "#/components/schemas/AudienceStatus"
},
"_ruleIds": {
"type": "array",
"description": "The rules IDs added or updated by this audience",
"items": {
"type": "string"
}
}
}
},
"ReleaseGuardianConfiguration": {
"type": "object",
"required": [
"monitoringWindowMilliseconds",
"rolloutWeight",
"rollbackOnRegression"
],
"properties": {
"monitoringWindowMilliseconds": {
"type": "integer",
"format": "int64",
"description": "The monitoring window in milliseconds",
"example": 60000
},
"rolloutWeight": {
"type": "integer",
"description": "The rollout weight percentage",
"example": 50
},
"rollbackOnRegression": {
"type": "boolean",
"description": "Whether or not to roll back on regression",
"example": true
},
"randomizationUnit": {
"type": "string",
"description": "The randomization unit for the measured rollout",
"example": "user"
}
}
},
"ReleaseGuardianConfigurationInput": {
"type": "object",
"properties": {
"monitoringWindowMilliseconds": {
"type": "integer",
"format": "int64",
"description": "The monitoring window in milliseconds",
"example": 60000
},
"rolloutWeight": {
"type": "integer",
"description": "The rollout weight",
"example": 50
},
"rollbackOnRegression": {
"type": "boolean",
"description": "Whether or not to rollback on regression",
"example": true
},
"randomizationUnit": {
"type": "string",
"description": "The randomization unit for the measured rollout",
"example": "user"
}
}
},
"ReleasePhase": {
"type": "object",
"required": [
"_id",
"_name",
"complete",
"_creationDate",
"_audiences"
],
"properties": {
"_id": {
"type": "string",
"description": "The phase ID",
"example": "1234a56b7c89d012345e678f"
},
"_name": {
"type": "string",
"description": "The release phase name",
"example": "Phase 1 - Testing"
},
"complete": {
"type": "boolean",
"description": "Whether this phase is complete",
"example": true
},
"_creationDate": {
"description": "Timestamp of when the release phase was created",
"example": "1684262711507",
"$ref": "#/components/schemas/UnixMillis"
},
"_completionDate": {
"description": "Timestamp of when the release phase was completed",
"example": "1684262711509",
"$ref": "#/components/schemas/UnixMillis"
},
"_completedBy": {
"description": "Details about how this phase was marked as complete",
"$ref": "#/components/schemas/CompletedBy"
},
"_audiences": {
"type": "array",
"description": "A logical grouping of one or more environments that share attributes for rolling out changes",
"items": {
"$ref": "#/components/schemas/ReleaseAudience"
}
},
"status": {
"description": "Status of the phase",
"example": "Started",
"enum": [
"NotStarted",
"ReadyToStart",
"Started",
"Paused",
"Complete"
],
"$ref": "#/components/schemas/PhaseStatus"
},
"started": {
"type": "boolean",
"description": "Whether or not this phase has started"
},
"_startedDate": {
"description": "Timestamp of when the release phase was started",
"$ref": "#/components/schemas/UnixMillis"
},
"configuration": {
"description": "The phase configuration",
"$ref": "#/components/schemas/PhaseConfiguration"
}
}
},
"ReleasePipeline": {
"type": "object",
"required": [
"createdAt",
"key",
"name",
"phases"
],
"properties": {
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp of when the release pipeline was created",
"example": "1684262711507"
},
"description": {
"type": "string",
"description": "The release pipeline description",
"example": "Standard pipeline to roll out to production"
},
"key": {
"type": "string",
"description": "The release pipeline key",
"example": "standard-pipeline"
},
"name": {
"type": "string",
"description": "The release pipeline name",
"example": "Standard Pipeline"
},
"phases": {
"type": "array",
"description": "An ordered list of the release pipeline phases. Each phase is a logical grouping of one or more environments that share attributes for rolling out changes.",
"items": {
"$ref": "#/components/schemas/Phase"
}
},
"tags": {
"type": "array",
"description": "A list of the release pipeline's tags",
"items": {
"type": "string"
},
"example": [
"example-tag"
]
},
"_version": {
"type": "integer",
"description": "The release pipeline version",
"example": 1
},
"_access": {
"description": "Details on the allowed and denied actions for this release pipeline",
"$ref": "#/components/schemas/Access"
},
"isProjectDefault": {
"type": "boolean",
"description": "Whether this release pipeline is the default pipeline for the project"
},
"_isLegacy": {
"type": "boolean",
"description": "Whether this release pipeline is a legacy pipeline",
"example": true
}
}
},
"ReleasePipelineCollection": {
"type": "object",
"required": [
"items",
"totalCount"
],
"properties": {
"items": {
"type": "array",
"description": "An array of release pipelines",
"items": {
"$ref": "#/components/schemas/ReleasePipeline"
}
},
"totalCount": {
"type": "integer",
"description": "Total number of release pipelines",
"example": 1
}
}
},
"ReleaseProgression": {
"type": "object",
"required": [
"_createdAt",
"flagKey",
"_links"
],
"properties": {
"_createdAt": {
"description": "Timestamp of when the release was created",
"example": "1684262711507",
"$ref": "#/components/schemas/UnixMillis"
},
"_completedAt": {
"description": "Timestamp of when the release was completed",
"example": "1684262711509",
"$ref": "#/components/schemas/UnixMillis"
},
"flagKey": {
"type": "string",
"description": "The flag key",
"example": "flag-key-123abc"
},
"activePhaseId": {
"type": "string",
"description": "The ID of the currently active release phase",
"example": "1234a56b7c89d012345e678f"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"ReleaseProgressionCollection": {
"type": "object",
"required": [
"activeCount",
"completedCount",
"items",
"phases",
"totalCount",
"_links"
],
"properties": {
"activeCount": {
"type": "integer",
"description": "The number of active releases",
"example": 3
},
"completedCount": {
"type": "integer",
"description": "The number of completed releases",
"example": 1
},
"items": {
"type": "array",
"description": "A list of details for each release, across all flags, for this release pipeline",
"items": {
"$ref": "#/components/schemas/ReleaseProgression"
}
},
"phases": {
"type": "array",
"description": "A list of details for each phase, across all releases, for this release pipeline",
"items": {
"$ref": "#/components/schemas/PhaseInfo"
}
},
"totalCount": {
"type": "integer",
"description": "The total number of releases for this release pipeline",
"example": 8
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"ReleaseStrategy": {
"type": "string"
},
"ReleaserAudienceConfigInput": {
"type": "object",
"properties": {
"audienceId": {
"type": "string",
"description": "UUID of the audience."
},
"releaseGuardianConfiguration": {
"description": "Optional configuration details for the specified audience. Will default to the release pipeline's audience configuration if omitted.",
"$ref": "#/components/schemas/ReleaseGuardianConfigurationInput"
},
"notifyMemberIds": {
"type": "array",
"description": "An array of member IDs. These members are notified to review the approval request.",
"items": {
"type": "string"
},
"example": [
"1234a56b7c89d012345e678f"
]
},
"notifyTeamKeys": {
"type": "array",
"description": "An array of team keys. The members of these teams are notified to review the approval request.",
"items": {
"type": "string"
},
"example": [
"example-reviewer-team"
]
}
}
},
"RepositoryCollectionRep": {
"type": "object",
"required": [
"_links",
"items"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
}
},
"items": {
"type": "array",
"description": "An array of repositories",
"items": {
"$ref": "#/components/schemas/RepositoryRep"
}
}
}
},
"RepositoryRep": {
"type": "object",
"required": [
"name",
"type",
"defaultBranch",
"enabled",
"version",
"_links"
],
"properties": {
"name": {
"type": "string",
"description": "The repository name",
"example": "LaunchDarkly-Docs"
},
"sourceLink": {
"type": "string",
"description": "A URL to access the repository",
"example": "https://github.com/launchdarkly/LaunchDarkly-Docs"
},
"commitUrlTemplate": {
"type": "string",
"description": "A template for constructing a valid URL to view the commit",
"example": "https://github.com/launchdarkly/LaunchDarkly-Docs/commit/${sha}"
},
"hunkUrlTemplate": {
"type": "string",
"description": "A template for constructing a valid URL to view the hunk",
"example": "https://github.com/launchdarkly/LaunchDarkly-Docs/blob/${sha}/${filePath}#L${lineNumber}"
},
"type": {
"type": "string",
"description": "The type of repository",
"example": "github",
"enum": [
"bitbucket",
"custom",
"github",
"gitlab"
]
},
"defaultBranch": {
"type": "string",
"description": "The repository's default branch",
"example": "main"
},
"enabled": {
"type": "boolean",
"description": "Whether or not a repository is enabled for code reference scanning",
"example": true
},
"version": {
"type": "integer",
"description": "The version of the repository's saved information",
"example": 3
},
"branches": {
"type": "array",
"description": "An array of the repository's branches that have been scanned for code references",
"items": {
"$ref": "#/components/schemas/BranchRep"
}
},
"_links": {
"type": "object",
"additionalProperties": {}
},
"_access": {
"$ref": "#/components/schemas/Access"
}
}
},
"ResourceAccess": {
"type": "object",
"properties": {
"action": {
"$ref": "#/components/schemas/ActionIdentifier"
},
"resource": {
"type": "string"
}
}
},
"ResourceCategory": {
"type": "string"
},
"ResourceIDResponse": {
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"projectKey": {
"type": "string"
},
"environmentKey": {
"type": "string"
},
"flagKey": {
"type": "string"
},
"key": {
"type": "string"
}
}
},
"ResourceId": {
"type": "object",
"properties": {
"environmentKey": {
"type": "string",
"description": "The environment key",
"example": "environment-key-123abc"
},
"flagKey": {
"type": "string",
"description": "Deprecated, use key instead",
"deprecated": true
},
"key": {
"type": "string",
"description": "The key of the flag or segment",
"example": "segment-key-123abc"
},
"kind": {
"description": "The type of resource, flag or segment",
"example": "segment",
"$ref": "#/components/schemas/ResourceKind"
},
"projectKey": {
"type": "string",
"description": "The project key",
"example": "project-key-123abc"
}
}
},
"ResourceKind": {
"type": "string"
},
"ReviewOutput": {
"type": "object",
"required": [
"_id",
"kind"
],
"properties": {
"_id": {
"type": "string"
},
"kind": {
"type": "string"
},
"creationDate": {
"$ref": "#/components/schemas/UnixMillis"
},
"comment": {
"type": "string"
},
"memberId": {
"type": "string"
},
"serviceTokenId": {
"type": "string"
}
}
},
"ReviewResponse": {
"type": "object",
"required": [
"_id",
"kind"
],
"properties": {
"_id": {
"type": "string",
"description": "The approval request ID",
"example": "12ab3c45de678910abc12345"
},
"kind": {
"type": "string",
"description": "The type of review action to take",
"example": "approve",
"enum": [
"approve",
"decline",
"comment"
]
},
"creationDate": {
"description": "Timestamp of when the request was created",
"example": "1653606981113",
"$ref": "#/components/schemas/UnixMillis"
},
"comment": {
"type": "string",
"description": "A comment describing the approval response",
"example": "Approved!"
},
"memberId": {
"type": "string",
"description": "ID of account member that reviewed request",
"example": "12ab3c45de678910abc12345"
},
"serviceTokenId": {
"type": "string",
"description": "ID of account service token that reviewed request",
"example": "12ab3c45de678910abc12345"
}
}
},
"RoleAttributeMap": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/RoleAttributeValues"
}
},
"RoleAttributeValues": {
"type": "array",
"items": {
"type": "string"
}
},
"RoleType": {
"type": "string"
},
"Rollout": {
"type": "object",
"required": [
"variations"
],
"properties": {
"variations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/WeightedVariation"
}
},
"experimentAllocation": {
"$ref": "#/components/schemas/ExperimentAllocationRep"
},
"seed": {
"type": "integer"
},
"bucketBy": {
"type": "string"
},
"contextKind": {
"type": "string"
}
}
},
"RootResponse": {
"type": "object",
"required": [
"links"
],
"properties": {
"links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
}
}
}
},
"Rule": {
"type": "object",
"required": [
"clauses",
"trackEvents"
],
"properties": {
"_id": {
"type": "string",
"description": "The flag rule ID"
},
"disabled": {
"type": "boolean",
"description": "Whether the rule is disabled"
},
"variation": {
"type": "integer",
"description": "The index of the variation, from the array of variations for this flag"
},
"rollout": {
"description": "Details on the percentage rollout, if it exists",
"$ref": "#/components/schemas/Rollout"
},
"clauses": {
"type": "array",
"description": "An array of clauses used for individual targeting based on attributes",
"items": {
"$ref": "#/components/schemas/Clause"
}
},
"trackEvents": {
"type": "boolean",
"description": "Whether LaunchDarkly tracks events for this rule"
},
"description": {
"type": "string",
"description": "The rule description"
},
"ref": {
"type": "string"
}
}
},
"RuleClause": {
"type": "object",
"properties": {
"attribute": {
"type": "string",
"description": "The attribute the rule applies to, for example, last name or email address"
},
"op": {
"type": "string",
"description": "The operator to apply to the given attribute",
"enum": [
"in",
"endsWith",
"startsWith",
"matches",
"contains",
"lessThan",
"lessThanOrEqual",
"greaterThan",
"greaterThanOrEqual",
"before",
"after",
"segmentMatch",
"semVerEqual",
"semVerLessThan",
"semVerGreaterThan"
]
},
"negate": {
"type": "boolean",
"description": "Whether the operator should be negated"
}
}
},
"ScheduleKind": {
"type": "string"
},
"SdkListRep": {
"type": "object",
"required": [
"_links",
"sdks"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {},
"description": "The location and content type of related resources"
},
"sdks": {
"type": "array",
"description": "The list of SDK names",
"items": {
"type": "string"
},
"example": [
"Android",
"Java",
"Node.js"
]
}
}
},
"SdkVersionListRep": {
"type": "object",
"required": [
"_links",
"sdkVersions"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {},
"description": "The location and content type of related resources"
},
"sdkVersions": {
"type": "array",
"description": "The list of SDK names and versions",
"items": {
"$ref": "#/components/schemas/SdkVersionRep"
},
"example": [
{
"sdk": "Android",
"version": "3.1.2"
},
{
"sdk": "Android",
"version": "3.1.5"
},
{
"sdk": "C",
"version": "2.4.6"
}
]
}
}
},
"SdkVersionRep": {
"type": "object",
"required": [
"sdk",
"version"
],
"properties": {
"sdk": {
"type": "string",
"description": "The SDK name, or \"Unknown\""
},
"version": {
"type": "string",
"description": "The version number, or \"Unknown\""
}
}
},
"SegmentBody": {
"type": "object",
"required": [
"name",
"key"
],
"properties": {
"name": {
"type": "string",
"description": "A human-friendly name for the segment",
"example": "Example segment"
},
"key": {
"type": "string",
"description": "A unique key used to reference the segment",
"example": "segment-key-123abc"
},
"description": {
"type": "string",
"description": "A description of the segment's purpose",
"example": "Bundle our sample customers together"
},
"tags": {
"type": "array",
"description": "Tags for the segment",
"items": {
"type": "string"
},
"example": [
"testing"
]
},
"unbounded": {
"type": "boolean",
"description": "Whether to create a standard segment (false) or a big segment (true). Standard segments include rule-based and smaller list-based segments. Big segments include larger list-based segments and synced segments. Only use a big segment if you need to add more than 15,000 individual targets.",
"example": false
},
"unboundedContextKind": {
"type": "string",
"description": "For big segments, the targeted context kind.",
"example": "device"
}
}
},
"SegmentId": {
"type": "string"
},
"SegmentMetadata": {
"type": "object",
"properties": {
"envId": {
"type": "string"
},
"segmentId": {
"$ref": "#/components/schemas/SegmentId"
},
"version": {
"type": "integer"
},
"includedCount": {
"type": "integer"
},
"excludedCount": {
"type": "integer"
},
"lastModified": {
"$ref": "#/components/schemas/UnixMillis"
},
"deleted": {
"type": "boolean"
}
}
},
"SegmentTarget": {
"type": "object",
"properties": {
"values": {
"type": "array",
"items": {
"type": "string"
}
},
"contextKind": {
"type": "string"
}
}
},
"SegmentUserList": {
"type": "object",
"properties": {
"add": {
"type": "array",
"items": {
"type": "string"
}
},
"remove": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"SegmentUserState": {
"type": "object",
"properties": {
"included": {
"$ref": "#/components/schemas/SegmentUserList"
},
"excluded": {
"$ref": "#/components/schemas/SegmentUserList"
}
}
},
"SeriesListRep": {
"type": "object",
"required": [
"_links",
"metadata",
"series"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {},
"description": "The location and content type of related resources"
},
"metadata": {
"type": "array",
"description": "Metadata about each series",
"items": {
"$ref": "#/components/schemas/SeriesMetadataRep"
}
},
"series": {
"type": "array",
"description": "An array of data points with timestamps. Each element of the array is an object with a 'time' field, whose value is the timestamp, and one or more key fields. If there are multiple key fields, they are labeled '0', '1', and so on, and are explained in the metadata.",
"items": {
"$ref": "#/components/schemas/SeriesTimeSliceRep"
},
"example": [
{
"0": 11,
"1": 15,
"time": 1677888000000
}
]
}
}
},
"SeriesListRepFloat": {
"type": "object",
"required": [
"_links",
"metadata",
"series"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {},
"description": "The location and content type of related resources"
},
"metadata": {
"type": "array",
"description": "Metadata about each series",
"items": {
"$ref": "#/components/schemas/SeriesMetadataRep"
}
},
"series": {
"type": "array",
"description": "An array of data points with timestamps. Each element of the array is an object with a 'time' field, whose value is the timestamp, and one or more key fields. If there are multiple key fields, they are labeled '0', '1', and so on, and are explained in the metadata.",
"items": {
"$ref": "#/components/schemas/SeriesTimeSliceRepFloat"
},
"example": [
{
"0": 11,
"1": 15,
"time": 1677888000000
}
]
}
}
},
"SeriesMetadataRep": {
"type": "object",
"additionalProperties": {}
},
"SeriesTimeSliceRep": {
"type": "object",
"additionalProperties": {
"type": "integer"
}
},
"SeriesTimeSliceRepFloat": {
"type": "object",
"additionalProperties": {
"type": "number"
}
},
"SimpleHoldoutRep": {
"type": "object",
"properties": {
"_id": {
"type": "string"
},
"key": {
"type": "string"
},
"name": {
"type": "string"
},
"status": {
"type": "string"
},
"createdAt": {
"$ref": "#/components/schemas/UnixMillis"
},
"updatedAt": {
"$ref": "#/components/schemas/UnixMillis"
},
"experiments": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RelatedExperimentRep"
}
}
}
},
"SourceEnv": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "The key of the source environment to clone from"
},
"version": {
"type": "integer",
"description": "(Optional) The version number of the source environment to clone from. Used for optimistic locking"
}
}
},
"StageInput": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The stage name",
"example": "10% rollout on day 1"
},
"executeConditionsInSequence": {
"type": "boolean",
"description": "Whether to execute the conditions in sequence for the given stage",
"example": true
},
"conditions": {
"type": "array",
"description": "An array of conditions for the stage",
"items": {
"$ref": "#/components/schemas/ConditionInput"
},
"example": [
{
"kind": "schedule",
"scheduleKind": "relative",
"waitDuration": 2,
"waitDurationUnit": "calendarDay"
}
]
},
"action": {
"description": "An instructions field containing an array of instructions for the stage. Each object in the array uses the semantic patch format for updating a feature flag.",
"example": "{\"instructions\": [{ \"kind\": \"turnFlagOn\"}]}",
"$ref": "#/components/schemas/ActionInput"
}
}
},
"StageOutput": {
"type": "object",
"required": [
"_id",
"conditions",
"action",
"_execution"
],
"properties": {
"_id": {
"type": "string",
"description": "The ID of this stage",
"example": "12ab3c45de678910abc12345"
},
"name": {
"type": "string",
"description": "The stage name",
"example": "10% rollout on day 1"
},
"conditions": {
"type": "array",
"description": "An array of conditions for the stage",
"items": {
"$ref": "#/components/schemas/ConditionOutput"
},
"example": [
{
"_execution": {
"status": "completed"
},
"id": "12ab3c45de678910abc12345",
"kind": "schedule",
"scheduleKind": "relative",
"waitDuration": 2,
"waitDurationUnit": "calendarDay"
}
]
},
"action": {
"description": "The type of instruction, and an array of instructions for the stage. Each object in the array uses the semantic patch format for updating a feature flag.",
"example": "{ \"kind\": \"patch\", \"instructions\": [{ \"kind\": \"turnFlagOn\"}] }",
"$ref": "#/components/schemas/ActionOutput"
},
"_execution": {
"description": "Details on the execution of this stage",
"example": "{ \"status\": \"completed\" }",
"$ref": "#/components/schemas/ExecutionOutput"
}
}
},
"Statement": {
"type": "object",
"required": [
"effect"
],
"properties": {
"resources": {
"type": "array",
"description": "Resource specifier strings",
"items": {
"type": "string"
},
"example": [
"proj/*:env/*;qa_*:/flag/*"
]
},
"notResources": {
"type": "array",
"description": "Targeted resources are the resources NOT in this list. The resources and notActions fields must be empty to use this field.",
"items": {
"type": "string"
}
},
"actions": {
"type": "array",
"description": "Actions to perform on a resource",
"items": {
"$ref": "#/components/schemas/ActionSpecifier"
},
"example": [
"*"
]
},
"notActions": {
"type": "array",
"description": "Targeted actions are the actions NOT in this list. The actions and notResources fields must be empty to use this field.",
"items": {
"$ref": "#/components/schemas/ActionSpecifier"
}
},
"effect": {
"type": "string",
"description": "Whether this statement should allow or deny actions on the resources.",
"example": "allow",
"enum": [
"allow",
"deny"
]
}
}
},
"StatementPost": {
"type": "object",
"required": [
"effect"
],
"properties": {
"resources": {
"type": "array",
"description": "Resource specifier strings",
"items": {
"type": "string"
},
"example": [
"proj/*:env/*:flag/*;testing-tag"
]
},
"notResources": {
"type": "array",
"description": "Targeted resources are the resources NOT in this list. The resources field must be empty to use this field.",
"items": {
"type": "string"
}
},
"actions": {
"type": "array",
"description": "Actions to perform on a resource",
"items": {
"$ref": "#/components/schemas/ActionSpecifier"
},
"example": [
"*"
]
},
"notActions": {
"type": "array",
"description": "Targeted actions are the actions NOT in this list. The actions field must be empty to use this field.",
"items": {
"$ref": "#/components/schemas/ActionSpecifier"
}
},
"effect": {
"type": "string",
"description": "Whether this statement should allow or deny actions on the resources.",
"example": "allow",
"enum": [
"allow",
"deny"
]
}
}
},
"StatementPostList": {
"type": "array",
"items": {
"$ref": "#/components/schemas/StatementPost"
}
},
"StatisticCollectionRep": {
"type": "object",
"required": [
"flags",
"_links"
],
"properties": {
"flags": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"$ref": "#/components/schemas/StatisticRep"
}
},
"description": "A map of flag keys to a list of code reference statistics for each code repository in which the flag key appears"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"StatisticRep": {
"type": "object",
"required": [
"name",
"type",
"sourceLink",
"defaultBranch",
"enabled",
"version",
"hunkCount",
"fileCount",
"_links"
],
"properties": {
"name": {
"type": "string",
"description": "The repository name",
"example": "LaunchDarkly-Docs"
},
"type": {
"type": "string",
"description": "The type of repository",
"example": "github",
"enum": [
"bitbucket",
"custom",
"github",
"gitlab"
]
},
"sourceLink": {
"type": "string",
"description": "A URL to access the repository",
"example": "https://github.com/launchdarkly/LaunchDarkly-Docs"
},
"defaultBranch": {
"type": "string",
"description": "The repository's default branch",
"example": "main"
},
"enabled": {
"type": "boolean",
"description": "Whether or not a repository is enabled for code reference scanning",
"example": true
},
"version": {
"type": "integer",
"description": "The version of the repository's saved information",
"example": 3
},
"hunkCount": {
"type": "integer",
"description": "The number of code reference hunks in which the flag appears in this repository"
},
"fileCount": {
"type": "integer",
"description": "The number of files in which the flag appears in this repository"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"latestCommitTime": {
"description": "The timestamp of the latest commit in the repository including the flag",
"example": "1636558831870",
"$ref": "#/components/schemas/UnixMillis"
}
}
},
"StatisticsRoot": {
"type": "object",
"properties": {
"projects": {
"type": "array",
"description": "The location and content type of all projects that have code references",
"items": {
"$ref": "#/components/schemas/Link"
},
"example": [
{
"href": "/api/v2/code-refs/statistics/example-project-with-code-refs",
"type": "application/json"
}
]
},
"self": {
"description": "The location and content type for accessing this resource",
"example": "{\"href\": \"/api/v2/code-refs/statistics\", \"type\": \"application/json\"}",
"$ref": "#/components/schemas/Link"
}
}
},
"StatusConflictErrorRep": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"description": "Specific error code encountered",
"example": "optimistic_locking_error"
},
"message": {
"type": "string",
"description": "Description of the error",
"example": "Conflict. Optimistic lock error. Try again later."
}
}
},
"StatusResponse": {
"type": "object",
"properties": {
"integrationId": {
"type": "string"
},
"message": {
"type": "string"
},
"statusCode": {
"type": "integer"
},
"timestamp": {
"$ref": "#/components/schemas/UnixMillis"
}
}
},
"StatusServiceUnavailable": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"description": "Specific error code encountered",
"example": "service_unavailable"
},
"message": {
"type": "string",
"description": "Description of the error",
"example": "Requested service unavailable"
}
}
},
"StoreIntegrationError": {
"type": "object",
"properties": {
"statusCode": {
"type": "integer"
},
"message": {
"type": "string"
},
"timestamp": {
"$ref": "#/components/schemas/UnixMillis"
}
}
},
"SubjectDataRep": {
"type": "object",
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
}
},
"name": {
"type": "string",
"description": "The subject's name"
},
"avatarUrl": {
"type": "string",
"description": "The subject's avatar"
}
}
},
"Target": {
"type": "object",
"required": [
"values",
"variation"
],
"properties": {
"values": {
"type": "array",
"description": "A list of the keys for targets that will receive this variation because of individual targeting",
"items": {
"type": "string"
}
},
"variation": {
"type": "integer",
"description": "The index, from the array of variations for this flag, of the variation to serve this list of targets"
},
"contextKind": {
"type": "string",
"description": "The context kind of the individual target"
}
}
},
"TargetResourceRep": {
"type": "object",
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
}
},
"name": {
"type": "string",
"description": "The name of the resource",
"example": "Example flag name"
},
"resources": {
"type": "array",
"description": "The resource specifier",
"items": {
"type": "string"
},
"example": [
"proj/example-project:env/production:flag/example-flag"
]
}
}
},
"Team": {
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "A description of the team",
"example": "Description for this team."
},
"key": {
"type": "string",
"description": "The team key",
"example": "team-key-123abc"
},
"name": {
"type": "string",
"description": "A human-friendly name for the team",
"example": "Example team"
},
"_access": {
"description": "Details on the allowed and denied actions for this team",
"$ref": "#/components/schemas/Access"
},
"_creationDate": {
"description": "Timestamp of when the team was created",
"example": "1648671956143",
"$ref": "#/components/schemas/UnixMillis"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"parent": {
"href": "/api/v2/teams",
"type": "application/json"
},
"roles": {
"href": "/api/v2/teams/example-team/roles",
"type": "application/json"
},
"self": {
"href": "/api/v2/teams/example-team",
"type": "application/json"
}
}
},
"_lastModified": {
"description": "Timestamp of when the team was most recently updated",
"example": "1648672446072",
"$ref": "#/components/schemas/UnixMillis"
},
"_version": {
"type": "integer",
"description": "The team version",
"example": 3
},
"_idpSynced": {
"type": "boolean",
"description": "Whether the team has been synced with an external identity provider (IdP). Team sync is available to customers on an Enterprise plan.",
"example": true
},
"roleAttributes": {
"description": "A map of role attributes for the team",
"example": "{\"developerProjectKey\": [\"default\"]}",
"$ref": "#/components/schemas/RoleAttributeMap"
},
"roles": {
"description": "Paginated list of the custom roles assigned to this team. Only included if specified in the expand query parameter.",
"$ref": "#/components/schemas/TeamCustomRoles"
},
"members": {
"description": "Details on the total count of members that belong to the team. Only included if specified in the expand query parameter.",
"$ref": "#/components/schemas/TeamMembers"
},
"projects": {
"description": "Paginated list of the projects that the team has any write access to. Only included if specified in the expand query parameter.",
"$ref": "#/components/schemas/TeamProjects"
},
"maintainers": {
"description": "Paginated list of the maintainers assigned to this team. Only included if specified in the expand query parameter.",
"$ref": "#/components/schemas/TeamMaintainers"
}
}
},
"TeamCustomRole": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "The key of the custom role",
"example": "role-key-123abc"
},
"name": {
"type": "string",
"description": "The name of the custom role",
"example": "Example role"
},
"projects": {
"description": "Details on the projects where team members have write privileges on at least one resource type (e.g. flags)",
"$ref": "#/components/schemas/TeamProjects"
},
"appliedOn": {
"description": "Timestamp of when the custom role was assigned to this team",
"example": "1648672018410",
"$ref": "#/components/schemas/UnixMillis"
}
}
},
"TeamCustomRoles": {
"type": "object",
"properties": {
"totalCount": {
"type": "integer",
"description": "The number of custom roles assigned to this team",
"example": 1
},
"items": {
"type": "array",
"description": "An array of the custom roles that have been assigned to this team",
"items": {
"$ref": "#/components/schemas/TeamCustomRole"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"self": {
"href": "/api/v2/teams/example-team/roles?limit=25",
"type": "application/json"
}
}
}
}
},
"TeamImportsRep": {
"type": "object",
"properties": {
"items": {
"type": "array",
"description": "An array of details about the members requested to be added to this team",
"items": {
"$ref": "#/components/schemas/MemberImportItem"
}
}
}
},
"TeamMaintainers": {
"type": "object",
"properties": {
"totalCount": {
"type": "integer",
"description": "The number of maintainers of the team",
"example": 1
},
"items": {
"type": "array",
"description": "Details on the members that have been assigned as maintainers of the team",
"items": {
"$ref": "#/components/schemas/MemberSummary"
},
"example": [
{
"_id": "569f183514f4432160000007",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"email": "ariel@acme.com",
"firstName": "Ariel",
"lastName": "Flores",
"role": "reader"
}
]
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"self": {
"href": "/api/v2/teams/example-team/maintainers?limit=20",
"type": "application/json"
}
}
}
}
},
"TeamMembers": {
"type": "object",
"properties": {
"totalCount": {
"type": "integer",
"description": "The total count of members that belong to the team",
"example": 15
}
}
},
"TeamProjects": {
"type": "object",
"properties": {
"totalCount": {
"type": "integer",
"example": 1
},
"items": {
"type": "array",
"description": "Details on each project where team members have write privileges on at least one resource type (e.g. flags)",
"items": {
"$ref": "#/components/schemas/ProjectSummary"
},
"example": [
{
"_links": {
"environments": {
"href": "/api/v2/projects/example-project/environments",
"type": "application/json"
},
"self": {
"href": "/api/v2/projects/example-project",
"type": "application/json"
}
},
"key": "project-key-123abc",
"name": "Example project"
}
]
}
}
},
"Teams": {
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"description": "An array of teams",
"items": {
"$ref": "#/components/schemas/Team"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"self": {
"href": "/api/v2/teams?expand=maintainers%2Cmembers%2Croles%2Cprojects&limit=20",
"type": "application/json"
}
}
},
"totalCount": {
"type": "integer",
"description": "The number of teams",
"example": 1
}
}
},
"TimestampRep": {
"type": "object",
"properties": {
"milliseconds": {
"$ref": "#/components/schemas/UnixMillis"
},
"seconds": {
"type": "integer",
"format": "int64"
},
"rfc3339": {
"type": "string"
},
"simple": {
"type": "string"
}
}
},
"Token": {
"type": "object",
"required": [
"_id",
"ownerId",
"memberId",
"creationDate",
"lastModified",
"_links"
],
"properties": {
"_id": {
"description": "The ID of the access token",
"example": "61095542756dba551110ae21",
"$ref": "#/components/schemas/ObjectId"
},
"ownerId": {
"description": "The ID of the owner of the account for the access token",
"example": "569f514156e003339cfd3917",
"$ref": "#/components/schemas/ObjectId"
},
"memberId": {
"description": "The ID of the member who created the access token",
"example": "569f514183f2164430000002",
"$ref": "#/components/schemas/ObjectId"
},
"_member": {
"description": "Details on the member who created the access token",
"$ref": "#/components/schemas/MemberSummary"
},
"name": {
"type": "string",
"description": "A human-friendly name for the access token",
"example": "Example reader token"
},
"description": {
"type": "string",
"description": "A description for the access token",
"example": "A reader token used in testing and examples"
},
"creationDate": {
"description": "Timestamp of when the access token was created",
"example": "1628001602644",
"$ref": "#/components/schemas/UnixMillis"
},
"lastModified": {
"description": "Timestamp of the last modification of the access token",
"example": "1628001602644",
"$ref": "#/components/schemas/UnixMillis"
},
"customRoleIds": {
"type": "array",
"description": "A list of custom role IDs to use as access limits for the access token",
"items": {
"$ref": "#/components/schemas/ObjectId"
},
"example": []
},
"inlineRole": {
"type": "array",
"description": "An array of policy statements, with three attributes: effect, resources, actions. May be used in place of a role.",
"items": {
"$ref": "#/components/schemas/Statement"
},
"example": []
},
"role": {
"type": "string",
"description": "Base role for the token",
"example": "reader"
},
"token": {
"type": "string",
"description": "The token value. When creating or resetting, contains the entire token value. Otherwise, contains the last four characters.",
"example": "1234"
},
"serviceToken": {
"type": "boolean",
"description": "Whether this is a service token or a personal token",
"example": false
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"parent": {
"href": "/api/v2/tokens",
"type": "application/json"
},
"self": {
"href": "/api/v2/tokens/61095542756dba551110ae21",
"type": "application/json"
}
}
},
"defaultApiVersion": {
"type": "integer",
"description": "The default API version for this token",
"example": 20240415
},
"lastUsed": {
"description": "Timestamp of when the access token was last used",
"example": "0",
"$ref": "#/components/schemas/UnixMillis"
}
}
},
"TokenSummary": {
"type": "object",
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
}
},
"_id": {
"type": "string"
},
"name": {
"type": "string",
"description": "The name of the token",
"example": "DevOps token"
},
"ending": {
"type": "string",
"description": "The last few characters of the token",
"example": "2345"
},
"serviceToken": {
"type": "boolean",
"description": "Whether this is a service token",
"example": false
}
}
},
"Tokens": {
"type": "object",
"properties": {
"items": {
"type": "array",
"description": "An array of access tokens",
"items": {
"$ref": "#/components/schemas/Token"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
}
},
"totalCount": {
"type": "integer",
"description": "The number of access tokens returned"
}
}
},
"TreatmentInput": {
"type": "object",
"required": [
"name",
"baseline",
"allocationPercent",
"parameters"
],
"properties": {
"name": {
"type": "string",
"description": "The treatment name",
"example": "Treatment 1"
},
"baseline": {
"type": "boolean",
"description": "Whether this treatment is the baseline to compare other treatments against",
"example": true
},
"allocationPercent": {
"type": "string",
"description": "The percentage of traffic allocated to this treatment during the iteration",
"example": "10"
},
"parameters": {
"type": "array",
"description": "Details on the flag and variation to use for this treatment",
"items": {
"$ref": "#/components/schemas/TreatmentParameterInput"
}
}
}
},
"TreatmentParameterInput": {
"type": "object",
"required": [
"flagKey",
"variationId"
],
"properties": {
"flagKey": {
"type": "string",
"description": "The flag key",
"example": "example-flag-for-experiment"
},
"variationId": {
"type": "string",
"description": "The ID of the flag variation",
"example": "e432f62b-55f6-49dd-a02f-eb24acf39d05"
}
}
},
"TreatmentRep": {
"type": "object",
"required": [
"name",
"allocationPercent"
],
"properties": {
"_id": {
"type": "string",
"description": "The treatment ID. This is the variation ID from the flag.",
"example": "122c9f3e-da26-4321-ba68-e0fc02eced58"
},
"name": {
"type": "string",
"description": "The treatment name. This is the variation name from the flag.",
"example": "Treatment 1"
},
"allocationPercent": {
"type": "string",
"description": "The percentage of traffic allocated to this treatment during the iteration",
"example": "10"
},
"baseline": {
"type": "boolean",
"description": "Whether this treatment is the baseline to compare other treatments against",
"example": true
},
"parameters": {
"type": "array",
"description": "Details on the flag and variation used for this treatment",
"items": {
"$ref": "#/components/schemas/ParameterRep"
}
}
}
},
"TreatmentsInput": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TreatmentInput"
}
},
"TriggerWorkflowCollectionRep": {
"type": "object",
"properties": {
"items": {
"type": "array",
"description": "An array of flag triggers",
"items": {
"$ref": "#/components/schemas/TriggerWorkflowRep"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"TriggerWorkflowRep": {
"type": "object",
"properties": {
"_id": {
"description": "The ID of this flag trigger",
"example": "12ab3c45de678910abc12345",
"$ref": "#/components/schemas/FeatureWorkflowId"
},
"_version": {
"type": "integer",
"description": "The flag trigger version",
"example": 1
},
"_creationDate": {
"description": "Timestamp of when the flag trigger was created",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"_maintainerId": {
"type": "string",
"description": "The ID of the flag trigger maintainer",
"example": "12ab3c45de678910abc12345"
},
"_maintainer": {
"description": "Details on the member who maintains this flag trigger",
"$ref": "#/components/schemas/MemberSummary"
},
"enabled": {
"type": "boolean",
"description": "Whether the flag trigger is currently enabled",
"example": true
},
"_integrationKey": {
"type": "string",
"description": "The unique identifier of the integration for your trigger",
"example": "generic-trigger"
},
"instructions": {
"description": "Details on the action to perform when triggering",
"example": "[ { \"kind\": \"turnFlagOn\" }]",
"$ref": "#/components/schemas/Instructions"
},
"_lastTriggeredAt": {
"description": "Timestamp of when the trigger was most recently executed",
"example": "1654114600000",
"$ref": "#/components/schemas/UnixMillis"
},
"_recentTriggerBodies": {
"type": "array",
"description": "Details on recent flag trigger requests.",
"items": {
"$ref": "#/components/schemas/RecentTriggerBody"
}
},
"_triggerCount": {
"type": "integer",
"description": "Number of times the trigger has been executed",
"example": 3
},
"triggerURL": {
"type": "string",
"description": "The unguessable URL for this flag trigger"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"TrustPolicyDetails": {
"type": "object",
"properties": {
"Version": {
"type": "string",
"description": "The version of the trust policy"
},
"Statement": {
"type": "array",
"description": "The statements of the trust policy",
"items": {
"$ref": "#/components/schemas/TrustPolicyStatement"
}
}
}
},
"TrustPolicyStatement": {
"type": "object",
"properties": {
"Effect": {
"type": "string",
"description": "The effect of trust policy statement"
},
"Action": {
"type": "array",
"description": "The action of trust policy statement",
"items": {
"type": "string"
}
},
"Principal": {
"description": "The principal of trust policy statement"
},
"Condition": {
"description": "The condition of trust policy statement"
}
}
},
"UnauthorizedErrorRep": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"description": "Specific error code encountered",
"example": "unauthorized"
},
"message": {
"type": "string",
"description": "Description of the error",
"example": "Invalid access token"
}
}
},
"UnixMillis": {
"type": "integer",
"format": "int64"
},
"UpdatePhaseStatusInput": {
"type": "object",
"properties": {
"status": {
"description": "Status of the phase",
"example": "Started",
"enum": [
"NotStarted",
"ReadyToStart",
"Started",
"Paused",
"Complete"
],
"$ref": "#/components/schemas/PhaseStatus"
},
"audiences": {
"type": "array",
"description": "Extra configuration for audiences required upon phase initialization.",
"items": {
"$ref": "#/components/schemas/ReleaserAudienceConfigInput"
}
}
}
},
"UpdateReleasePipelineInput": {
"type": "object",
"required": [
"name",
"phases"
],
"properties": {
"description": {
"type": "string",
"description": "The release pipeline description",
"example": "Standard pipeline to roll out to production"
},
"name": {
"type": "string",
"description": "The name of the release pipeline",
"example": "Standard Pipeline"
},
"phases": {
"type": "array",
"description": "A logical grouping of one or more environments that share attributes for rolling out changes",
"items": {
"$ref": "#/components/schemas/CreatePhaseInput"
}
},
"tags": {
"type": "array",
"description": "A list of tags for this release pipeline",
"items": {
"type": "string"
},
"example": [
"example-tag"
]
}
}
},
"UpsertContextKindPayload": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "The context kind name",
"example": "organization"
},
"description": {
"type": "string",
"description": "The context kind description",
"example": "An example context kind for organizations"
},
"hideInTargeting": {
"type": "boolean",
"description": "Alias for archived.",
"example": false
},
"archived": {
"type": "boolean",
"description": "Whether the context kind is archived. Archived context kinds are unavailable for targeting.",
"example": false
},
"version": {
"type": "integer",
"description": "The context kind version. If not specified when the context kind is created, defaults to 1.",
"example": 1
}
}
},
"UpsertFlagDefaultsPayload": {
"type": "object",
"required": [
"tags",
"temporary",
"booleanDefaults",
"defaultClientSideAvailability"
],
"properties": {
"tags": {
"type": "array",
"description": "A list of default tags for each flag",
"items": {
"type": "string"
},
"example": [
"tag-1",
"tag-2"
]
},
"temporary": {
"type": "boolean",
"description": "Whether the flag should be temporary by default",
"example": true
},
"booleanDefaults": {
"$ref": "#/components/schemas/BooleanFlagDefaults"
},
"defaultClientSideAvailability": {
"description": "Which client-side SDK types can use this flag by default.",
"$ref": "#/components/schemas/DefaultClientSideAvailability"
}
}
},
"UpsertResponseRep": {
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of the create or update operation",
"example": "success"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"UrlMatcher": {
"additionalProperties": {},
"type": "object"
},
"UrlMatchers": {
"items": {
"$ref": "#/components/schemas/UrlMatcher"
},
"type": "array"
},
"UrlPost": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"exact",
"canonical",
"substring",
"regex"
]
},
"url": {
"type": "string"
},
"substring": {
"type": "string"
},
"pattern": {
"type": "string"
}
}
},
"User": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "The user key. This is the only mandatory user attribute.",
"example": "user-key-123abc"
},
"secondary": {
"type": "string",
"description": "If provided, used with the user key to generate a variation in percentage rollouts",
"example": "2398127"
},
"ip": {
"type": "string",
"description": "The user's IP address",
"example": "10.10.10.10"
},
"country": {
"type": "string",
"description": "The user's country",
"example": "United States"
},
"email": {
"type": "string",
"description": "The user's email",
"example": "sandy@example.com"
},
"firstName": {
"type": "string",
"description": "The user's first name",
"example": "Sandy"
},
"lastName": {
"type": "string",
"description": "The user's last name",
"example": "Smith"
},
"avatar": {
"type": "string",
"description": "An absolute URL to an avatar image.",
"example": "http://example.com/avatar.png"
},
"name": {
"type": "string",
"description": "The user's full name",
"example": "Sandy Smith"
},
"anonymous": {
"type": "boolean",
"description": "Whether the user is anonymous. If true, this user does not appear on the Contexts list in the LaunchDarkly user interface.",
"example": false
},
"custom": {
"type": "object",
"additionalProperties": {},
"description": "Any other custom attributes for this user. Custom attributes contain any other user data that you would like to use to conditionally target your users."
},
"privateAttrs": {
"type": "array",
"description": "A list of attribute names that are marked as private. You can use these attributes in targeting rules and segments. If you are using a server-side SDK, the SDK will not send the private attribute back to LaunchDarkly. If you are using a client-side SDK, the SDK will send the private attribute back to LaunchDarkly for evaluation. However, the SDK won't send the attribute to LaunchDarkly in events data, LaunchDarkly won't store the private attribute, and the private attribute will not appear on the Contexts list.",
"items": {
"type": "string"
}
}
}
},
"UserAttributeNamesRep": {
"type": "object",
"properties": {
"private": {
"type": "array",
"description": "private attributes",
"items": {
"type": "string"
},
"example": [
"SSN",
"credit_card_number"
]
},
"custom": {
"type": "array",
"description": "custom attributes",
"items": {
"type": "string"
},
"example": [
"Age",
"FavoriteFood",
"FavoriteColor"
]
},
"standard": {
"type": "array",
"description": "standard attributes",
"items": {
"type": "string"
},
"example": [
"key",
"ip",
"firstName",
"lastName",
"country",
"anonymous"
]
}
}
},
"UserFlagSetting": {
"type": "object",
"required": [
"_links",
"_value",
"setting"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources.",
"example": {
"sort.order": {
"href": "/api/v2/users/lacuna/production/Abbie_Braun/flags/sort.order",
"type": "application/json"
}
}
},
"_value": {
"description": "The value of the flag variation that the user receives. If there is no defined default rule, this is null.",
"example": "true"
},
"setting": {
"description": "Whether the user is explicitly targeted to receive a particular variation. The setting is false if you have turned off a feature flag for a user. It is null if you haven't assigned that user to a specific variation.",
"example": "null"
},
"reason": {
"description": "Contains information about why that variation was selected.",
"example": "{\"kind\": \"RULE_MATCH\"}",
"$ref": "#/components/schemas/EvaluationReason"
}
}
},
"UserFlagSettings": {
"type": "object",
"required": [
"items",
"_links"
],
"properties": {
"items": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/UserFlagSetting"
},
"description": "An array of flag settings for the user",
"example": {
"alternate.page": {
"_links": {
"self": {
"href": "/api/v2/users/lacuna/production/Abbie_Braun/flags/alternate.page",
"type": "application/json"
}
},
"_value": false,
"setting": null
},
"sort.order": {
"_links": {
"self": {
"href": "/api/v2/users/lacuna/production/Abbie_Braun/flags/sort.order",
"type": "application/json"
}
},
"_value": true,
"setting": null
}
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"self": {
"href": "/api/v2/users/lacuna/production/Abbie_Braun/flags",
"type": "application/json"
}
}
}
}
},
"UserRecord": {
"type": "object",
"properties": {
"lastPing": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last time this user was seen",
"example": "2022-06-28T23:21:29.176609596Z"
},
"environmentId": {
"description": "The environment ID",
"example": "1234a56b7c89d012345e678f",
"$ref": "#/components/schemas/ObjectId"
},
"ownerId": {
"description": "The ID of the member who is the owner for this account",
"example": "12ab3c45de678910abc12345",
"$ref": "#/components/schemas/ObjectId"
},
"user": {
"description": "Details on the user",
"$ref": "#/components/schemas/User"
},
"sortValue": {
"description": "If this record is returned as part of a list, the value used to sort the list. This is only included when the sort query parameter is specified. It is a time, in Unix milliseconds, if the sort is by lastSeen. It is a user key if the sort is by userKey.",
"example": "user-key-123abc"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"parent": {
"href": "/api/v2/users/my-project/my-environment",
"type": "application/json"
},
"self": {
"href": "/api/v2/users/my-project/my-environment/my-user",
"type": "application/json"
},
"settings": {
"href": "/api/v2/users/my-project/my-environment/my-user/flags",
"type": "text/html"
},
"site": {
"href": "/my-project/my-environment/users/my-user",
"type": "text/html"
}
}
},
"_access": {
"description": "Details on the allowed and denied actions for this user",
"$ref": "#/components/schemas/Access"
}
}
},
"UserSegment": {
"type": "object",
"required": [
"name",
"tags",
"creationDate",
"lastModifiedDate",
"key",
"_links",
"rules",
"version",
"deleted",
"generation"
],
"properties": {
"name": {
"type": "string",
"description": "A human-friendly name for the segment.",
"example": "Example segment"
},
"description": {
"type": "string",
"description": "A description of the segment's purpose. Defaults to null and is omitted in the response if not provided.",
"example": "Bundle our sample customers together"
},
"tags": {
"type": "array",
"description": "Tags for the segment. Defaults to an empty array.",
"items": {
"type": "string"
},
"example": [
"testing"
]
},
"creationDate": {
"description": "Timestamp of when the segment was created",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"lastModifiedDate": {
"description": "Timestamp of when the segment was last modified",
"example": "1654104600000",
"$ref": "#/components/schemas/UnixMillis"
},
"key": {
"type": "string",
"description": "A unique key used to reference the segment",
"example": "segment-key-123abc"
},
"included": {
"type": "array",
"description": "An array of keys for included targets. Included individual targets are always segment members, regardless of segment rules. For list-based segments over 15,000 entries, also called big segments, this array is either empty or omitted.",
"items": {
"type": "string"
},
"example": [
"user-key-123abc"
]
},
"excluded": {
"type": "array",
"description": "An array of keys for excluded targets. Segment rules bypass individual excluded targets, so they will never be included based on rules. Excluded targets may still be included explicitly. This value is omitted for list-based segments over 15,000 entries, also called big segments.",
"items": {
"type": "string"
},
"example": [
"user-key-123abc"
]
},
"includedContexts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SegmentTarget"
}
},
"excludedContexts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SegmentTarget"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"rules": {
"type": "array",
"description": "An array of the targeting rules for this segment.",
"items": {
"$ref": "#/components/schemas/UserSegmentRule"
},
"example": [
{
"_id": "1234a56b7c89d012345e678f",
"clauses": [
{
"_id": "12ab3c45de678910fab12345",
"attribute": "email",
"negate": false,
"op": "endsWith",
"values": [
".edu"
]
}
]
}
]
},
"version": {
"type": "integer",
"description": "Version of the segment",
"example": 1
},
"deleted": {
"type": "boolean",
"description": "Whether the segment has been deleted",
"example": false
},
"_access": {
"$ref": "#/components/schemas/Access"
},
"_flags": {
"type": "array",
"description": "A list of flags targeting this segment. Only included when getting a single segment, using the getSegment endpoint.",
"items": {
"$ref": "#/components/schemas/FlagListingRep"
}
},
"unbounded": {
"type": "boolean",
"description": "Whether this is a standard segment (false) or a big segment (true). Standard segments include rule-based segments and smaller list-based segments. Big segments include larger list-based segments and synced segments. If omitted, the segment is a standard segment.",
"example": false
},
"unboundedContextKind": {
"type": "string",
"description": "For big segments, the targeted context kind."
},
"generation": {
"type": "integer",
"description": "For big segments, how many times this segment has been created."
},
"_unboundedMetadata": {
"description": "Details on the external data store backing this segment. Only applies to big segments.",
"$ref": "#/components/schemas/SegmentMetadata"
},
"_external": {
"type": "string",
"description": "The external data store backing this segment. Only applies to synced segments.",
"example": "amplitude"
},
"_externalLink": {
"type": "string",
"description": "The URL for the external data store backing this segment. Only applies to synced segments.",
"example": "https://analytics.amplitude.com/org/1234/cohort/123abc"
},
"_importInProgress": {
"type": "boolean",
"description": "Whether an import is currently in progress for the specified segment. Only applies to big segments.",
"example": false
}
}
},
"UserSegmentRule": {
"type": "object",
"required": [
"clauses"
],
"properties": {
"_id": {
"type": "string"
},
"clauses": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Clause"
}
},
"weight": {
"type": "integer"
},
"rolloutContextKind": {
"type": "string"
},
"bucketBy": {
"type": "string"
},
"description": {
"type": "string"
}
}
},
"UserSegments": {
"type": "object",
"required": [
"items",
"_links"
],
"properties": {
"items": {
"type": "array",
"description": "An array of segments",
"items": {
"$ref": "#/components/schemas/UserSegment"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"totalCount": {
"type": "integer",
"description": "The total number of segments"
}
}
},
"Users": {
"type": "object",
"required": [
"totalCount",
"items"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"next": {
"href": "/api/v2/user-search/my-project/my-environment?after=1647993600000&limit=20&searchAfter=my-user&sort=userKey",
"type": "application/json"
},
"self": {
"href": "/api/v2/user-search/my-project/my-environment?after=1647993600000&limit=20&sort=userKey",
"type": "application/json"
}
}
},
"totalCount": {
"type": "integer",
"description": "The total number of users in the environment",
"example": 245
},
"items": {
"type": "array",
"description": "Details on the users",
"items": {
"$ref": "#/components/schemas/UserRecord"
}
}
}
},
"UsersRep": {
"type": "object",
"required": [
"totalCount",
"items"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"next": {
"href": "/api/v2/users/my-project/my-environment?after=1647993600000&limit=20&searchAfter=my-user",
"type": "application/json"
},
"self": {
"href": "/api/v2/users/my-project/my-environment?after=1647993600000&limit=20",
"type": "application/json"
}
}
},
"totalCount": {
"type": "integer",
"description": "The total number of users in the environment",
"example": 245
},
"items": {
"type": "array",
"description": "Details on the users",
"items": {
"$ref": "#/components/schemas/UserRecord"
}
}
}
},
"ValuePut": {
"type": "object",
"properties": {
"setting": {
"description": "The variation value to set for the context. Must match the flag's variation type.",
"example": "existing_variation_value_to_use"
},
"comment": {
"type": "string",
"description": "Optional comment describing the change",
"example": "make sure this context experiences a specific variation"
}
}
},
"Variation": {
"type": "object",
"required": [
"value"
],
"properties": {
"_id": {
"type": "string",
"description": "The ID of the variation. Leave empty when you are creating a flag."
},
"value": {
"description": "The value of the variation. For boolean flags, this must be true or false. For multivariate flags, this may be a string, number, or JSON object."
},
"description": {
"type": "string",
"description": "Description of the variation. Defaults to an empty string, but is omitted from the response if not set."
},
"name": {
"type": "string",
"description": "A human-friendly name for the variation. Defaults to an empty string, but is omitted from the response if not set."
}
}
},
"VariationOrRolloutRep": {
"type": "object",
"properties": {
"variation": {
"type": "integer",
"description": "The index of the variation, from the array of variations for this flag"
},
"rollout": {
"description": "Details on the percentage rollout, if it exists",
"$ref": "#/components/schemas/Rollout"
}
}
},
"VariationSummary": {
"type": "object",
"required": [
"rules",
"nullRules",
"targets",
"contextTargets"
],
"properties": {
"rules": {
"type": "integer"
},
"nullRules": {
"type": "integer"
},
"targets": {
"type": "integer"
},
"contextTargets": {
"type": "integer"
},
"isFallthrough": {
"type": "boolean"
},
"isOff": {
"type": "boolean"
},
"rollout": {
"type": "integer"
},
"bucketBy": {
"type": "string"
}
}
},
"VersionsRep": {
"type": "object",
"required": [
"validVersions",
"latestVersion",
"currentVersion"
],
"properties": {
"validVersions": {
"type": "array",
"description": "A list of all valid API versions. To learn more about our versioning, read [Versioning](https://launchdarkly.com/docs/api#versioning).",
"items": {
"$ref": "#/components/schemas/DateVersion"
}
},
"latestVersion": {
"description": "The most recently released version of the API",
"example": "20220603",
"$ref": "#/components/schemas/DateVersion"
},
"currentVersion": {
"description": "The version of the API currently in use. Typically this is the API version specified for your access token. If you add the LD-API-Version: beta header to your request, this will be equal to the latestVersion.",
"example": "20220603",
"$ref": "#/components/schemas/DateVersion"
},
"beta": {
"type": "boolean",
"description": "Whether the version of the API currently is use is a beta version. This is always true if you add the LD-API-Version: beta header to your request.",
"example": false
}
}
},
"Webhook": {
"type": "object",
"required": [
"_links",
"_id",
"url",
"on",
"tags"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"_id": {
"type": "string",
"description": "The ID of this webhook",
"example": "57be1db38b75bf0772d11384"
},
"name": {
"type": "string",
"description": "A human-readable name for this webhook",
"example": "Example hook"
},
"url": {
"type": "string",
"description": "The URL to which LaunchDarkly sends an HTTP POST payload for this webhook",
"example": "http://www.example.com"
},
"secret": {
"type": "string",
"description": "The secret for this webhook",
"example": "frobozz"
},
"statements": {
"type": "array",
"description": "Represents a Custom role policy, defining a resource kinds filter the webhook responds to.",
"items": {
"$ref": "#/components/schemas/Statement"
}
},
"on": {
"type": "boolean",
"description": "Whether or not this webhook is enabled",
"example": true
},
"tags": {
"type": "array",
"description": "List of tags for this webhook",
"items": {
"type": "string"
},
"example": [
"examples"
]
},
"_access": {
"description": "Details on the allowed and denied actions for this webhook",
"$ref": "#/components/schemas/Access"
}
}
},
"Webhooks": {
"type": "object",
"required": [
"_links",
"items"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"items": {
"type": "array",
"description": "An array of webhooks",
"items": {
"$ref": "#/components/schemas/Webhook"
}
}
}
},
"WeightedVariation": {
"type": "object",
"required": [
"variation",
"weight"
],
"properties": {
"variation": {
"type": "integer"
},
"weight": {
"type": "integer"
},
"_untracked": {
"type": "boolean"
}
}
},
"WorkflowTemplateMetadata": {
"type": "object",
"properties": {
"parameters": {
"type": "array",
"items": {
"$ref": "#/components/schemas/WorkflowTemplateParameter"
}
}
}
},
"WorkflowTemplateOutput": {
"type": "object",
"required": [
"_id",
"_key",
"_creationDate",
"_ownerId",
"_maintainerId",
"_links"
],
"properties": {
"_id": {
"type": "string"
},
"_key": {
"type": "string"
},
"name": {
"type": "string"
},
"_creationDate": {
"$ref": "#/components/schemas/UnixMillis"
},
"_ownerId": {
"type": "string"
},
"_maintainerId": {
"type": "string"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
}
},
"description": {
"type": "string"
},
"stages": {
"type": "array",
"items": {
"$ref": "#/components/schemas/StageOutput"
}
}
}
},
"WorkflowTemplateParameter": {
"type": "object",
"properties": {
"_id": {
"description": "The ID of the condition or instruction referenced by this parameter",
"$ref": "#/components/schemas/ObjectId"
},
"path": {
"type": "string",
"description": "The path of the property to parameterize, relative to its parent condition or instruction"
},
"default": {
"description": "The default value of the parameter and other relevant metadata",
"$ref": "#/components/schemas/ParameterDefault"
},
"valid": {
"type": "boolean",
"description": "Whether the default value is valid for the target flag and environment"
}
}
},
"WorkflowTemplatesListingOutputRep": {
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/WorkflowTemplateOutput"
}
}
}
},
"approvalRequestPatchInput": {
"type": "object",
"required": [
"instructions"
],
"properties": {
"comment": {
"type": "string",
"description": "Optional comment describing the update",
"example": "Update targeting to serve true to beta testers"
},
"instructions": {
"description": "The instructions to perform when updating",
"example": "[ { \"kind\": \"updateDescription\", \"value\": \"New description\" } ]",
"$ref": "#/components/schemas/Instructions"
}
}
},
"createCopyFlagConfigApprovalRequestRequest": {
"type": "object",
"required": [
"description",
"source"
],
"properties": {
"comment": {
"type": "string",
"description": "Optional comment describing the approval request",
"example": "optional comment"
},
"description": {
"type": "string",
"description": "A brief description of your changes",
"example": "copy flag settings to another environment"
},
"notifyMemberIds": {
"type": "array",
"description": "An array of member IDs. These members are notified to review the approval request.",
"items": {
"type": "string"
},
"example": [
"1234a56b7c89d012345e678f"
]
},
"notifyTeamKeys": {
"type": "array",
"description": "An array of team keys. The members of these teams are notified to review the approval request.",
"items": {
"type": "string"
},
"example": [
"example-reviewer-team"
]
},
"source": {
"description": "The flag to copy",
"$ref": "#/components/schemas/sourceFlag"
},
"includedActions": {
"type": "array",
"description": "Optional list of the flag changes to copy from the source environment to the target environment. You may include either includedActions or excludedActions, but not both. If neither are included, then all flag changes will be copied.",
"items": {
"type": "string",
"enum": [
"updateOn",
"updateFallthrough",
"updateOffVariation",
"updateRules",
"updateTargets",
"updatePrerequisites"
]
},
"example": [
"updateOn"
]
},
"excludedActions": {
"type": "array",
"description": "Optional list of the flag changes NOT to copy from the source environment to the target environment. You may include either includedActions or excludedActions, but not both. If neither are included, then all flag changes will be copied.",
"items": {
"type": "string",
"enum": [
"updateOn",
"updateFallthrough",
"updateOffVariation",
"updateRules",
"updateTargets",
"updatePrerequisites"
]
},
"example": [
"updateOn"
]
}
}
},
"createFlagConfigApprovalRequestRequest": {
"type": "object",
"required": [
"description",
"instructions"
],
"properties": {
"comment": {
"type": "string",
"description": "Optional comment describing the approval request",
"example": "optional comment"
},
"description": {
"type": "string",
"description": "A brief description of the changes you're requesting",
"example": "Requesting to update targeting"
},
"instructions": {
"description": "List of instructions in semantic patch format to be applied to the feature flag. Review the [Update feature flag](https://launchdarkly.com/docs/ld-docs/api/feature-flags/patch-feature-flag) documentation for details on available instructions.",
"example": "[{\"kind\": \"addTargets\", \"values\": [ \"context-key-123abc\"], \"variationId\": \"ce67d625-a8b9-4fb5-a344-ab909d9d4f4d\" }]",
"$ref": "#/components/schemas/Instructions"
},
"notifyMemberIds": {
"type": "array",
"description": "An array of member IDs. These members are notified to review the approval request.",
"items": {
"type": "string"
},
"example": [
"1234a56b7c89d012345e678f"
]
},
"notifyTeamKeys": {
"type": "array",
"description": "An array of team keys. The members of these teams are notified to review the approval request.",
"items": {
"type": "string"
},
"example": [
"example-reviewer-team"
]
},
"executionDate": {
"description": "Timestamp for when instructions will be executed",
"example": "1653926400000",
"$ref": "#/components/schemas/UnixMillis"
},
"operatingOnId": {
"type": "string",
"description": "The ID of a scheduled change. Include this if your instructions include editing or deleting a scheduled change.",
"example": "6297ed79dee7dc14e1f9a80c"
},
"integrationConfig": {
"description": "Additional approval request fields for third-party integration approval systems. If you are using a third-party integration to manage approval requests, these additional fields will be described in the manifest.json for that integration, at https://github.com/launchdarkly/integration-framework.",
"$ref": "#/components/schemas/FormVariableConfig"
}
}
},
"customProperty": {
"type": "object",
"required": [
"name",
"value"
],
"properties": {
"name": {
"type": "string",
"description": "The name of the custom property of this type.",
"example": "Jira issues"
},
"value": {
"type": "array",
"description": "An array of values for the custom property data to associate with this flag.",
"items": {
"type": "string"
},
"example": [
"is-123",
"is-456"
]
}
}
},
"flagDefaultsRep": {
"type": "object",
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"key": {
"type": "string",
"description": "A unique key for the flag default"
},
"tags": {
"type": "array",
"description": "A list of default tags for each flag",
"items": {
"type": "string"
},
"example": [
"tag-1",
"tag-2"
]
},
"temporary": {
"type": "boolean",
"description": "Whether the flag should be temporary by default",
"example": true
},
"defaultClientSideAvailability": {
"description": "Which client-side SDK types can use this flag by default. Set usingMobileKey to make the flag available for mobile SDKs. Set usingEnvironmentId to make the flag available for client-side SDKs.",
"example": "{\"usingMobileKey\": true, \"usingEnvironmentId\": false}",
"$ref": "#/components/schemas/ClientSideAvailability"
},
"booleanDefaults": {
"description": "Defaults for boolean flags within this project",
"$ref": "#/components/schemas/BooleanDefaults"
}
}
},
"flagLinkPost": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "The flag link key",
"example": "flag-link-key-123abc"
},
"integrationKey": {
"type": "string",
"description": "The integration key for an integration whose manifest.json includes the flagLink capability, if this is a flag link for an existing integration. Do not include for URL flag links."
},
"timestamp": {
"description": "The time, in Unix milliseconds, to mark this flag link as associated with the external URL. If omitted, defaults to the creation time of this flag link.",
"$ref": "#/components/schemas/UnixMillis"
},
"deepLink": {
"type": "string",
"description": "The URL for the external resource you are linking the flag to",
"example": "https://example.com/archives/123123123"
},
"title": {
"type": "string",
"description": "The title of the flag link",
"example": "Example link title"
},
"description": {
"type": "string",
"description": "The description of the flag link",
"example": "Example link description"
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "The metadata required by this integration in order to create a flag link, if this is a flag link for an existing integration. Defined in the integration's manifest.json file under flagLink."
}
}
},
"flagSempatch": {
"type": "object",
"required": [
"instructions"
],
"properties": {
"instructions": {
"description": "Semantic patch instructions. The same ones that are valid for flags are valid here.",
"$ref": "#/components/schemas/Instructions"
},
"comment": {
"type": "string"
}
}
},
"followersPerFlag": {
"type": "object",
"properties": {
"flagKey": {
"type": "string",
"description": "The flag key",
"example": "example-flag-key"
},
"followers": {
"type": "array",
"description": "A list of members who are following this flag",
"items": {
"$ref": "#/components/schemas/FollowFlagMember"
}
}
}
},
"instructionUserRequest": {
"type": "object",
"required": [
"kind",
"flagKey",
"variationId"
],
"properties": {
"kind": {
"type": "string",
"description": "The type of change to make to the removal date for this user from individual targeting for this flag.",
"example": "addExpireUserTargetDate",
"enum": [
"addExpireUserTargetDate",
"updateExpireUserTargetDate",
"removeExpireUserTargetDate"
]
},
"flagKey": {
"type": "string",
"description": "The flag key",
"example": "sample-flag-key"
},
"variationId": {
"type": "string",
"description": "ID of a variation on the flag",
"example": "ce12d345-a1b2-4fb5-a123-ab123d4d5f5d"
},
"value": {
"type": "integer",
"description": "The time, in Unix milliseconds, when LaunchDarkly should remove the user from individual targeting for this flag. Required if kind is addExpireUserTargetDate or updateExpireUserTargetDate.",
"example": 1653469200000
},
"version": {
"type": "integer",
"description": "The version of the expiring user target to update. Optional and only used if kind is updateExpireUserTargetDate. If included, update will fail if version doesn't match current version of the expiring user target.",
"example": 1
}
}
},
"ipList": {
"type": "object",
"required": [
"addresses",
"outboundAddresses"
],
"properties": {
"addresses": {
"type": "array",
"description": "A list of the IP addresses LaunchDarkly's service uses",
"items": {
"type": "string"
},
"example": [
"104.156.80.0/20",
"151.101.0.0/16"
]
},
"outboundAddresses": {
"type": "array",
"description": "A list of the IP addresses outgoing webhook notifications use",
"items": {
"type": "string"
},
"example": [
"52.21.152.96/32"
]
}
}
},
"membersPatchInput": {
"type": "object",
"required": [
"instructions"
],
"properties": {
"comment": {
"type": "string",
"description": "Optional comment describing the update",
"example": "Optional comment about the update"
},
"instructions": {
"description": "The instructions to perform when updating. This should be an array with objects that look like {\"kind\": \"update_action\"}. Some instructions also require additional parameters as part of this object.",
"example": "[ { \"kind\": \"replaceMembersRoles\", \"value\": \"reader\" } ]",
"$ref": "#/components/schemas/Instructions"
}
}
},
"oauthClientPost": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of your new LaunchDarkly OAuth 2.0 client."
},
"redirectUri": {
"type": "string",
"description": "The redirect URI for your new OAuth 2.0 application. This should be an absolute URL conforming with the standard HTTPS protocol."
},
"description": {
"type": "string",
"description": "Description of your OAuth 2.0 client."
}
}
},
"patchFlagsRequest": {
"type": "object",
"required": [
"instructions"
],
"properties": {
"comment": {
"type": "string",
"description": "Optional comment describing the change",
"example": "optional comment"
},
"instructions": {
"type": "array",
"description": "The instructions to perform when updating",
"items": {
"$ref": "#/components/schemas/Instruction"
},
"example": [
{
"kind": "addExpireUserTargetDate",
"userKey": "sandy",
"value": 1686412800000,
"variationId": "ce12d345-a1b2-4fb5-a123-ab123d4d5f5d"
}
]
}
}
},
"patchSegmentExpiringTargetInputRep": {
"type": "object",
"required": [
"instructions"
],
"properties": {
"comment": {
"type": "string",
"description": "Optional description of changes",
"example": "optional comment"
},
"instructions": {
"type": "array",
"description": "Semantic patch instructions for the desired changes to the resource",
"items": {
"$ref": "#/components/schemas/patchSegmentExpiringTargetInstruction"
},
"example": [
{
"contextKey": "user@email.com",
"contextKind": "user",
"kind": "updateExpiringTarget",
"targetType": "included",
"value": 1587582000000,
"version": 0
}
]
}
}
},
"patchSegmentExpiringTargetInstruction": {
"type": "object",
"required": [
"kind",
"contextKey",
"contextKind",
"targetType"
],
"properties": {
"kind": {
"type": "string",
"description": "The type of change to make to the context's removal date from this segment",
"example": "addExpiringTarget",
"enum": [
"addExpiringTarget",
"updateExpiringTarget",
"removeExpiringTarget"
]
},
"contextKey": {
"type": "string",
"description": "A unique key used to represent the context"
},
"contextKind": {
"type": "string",
"description": "The kind of context",
"example": "user"
},
"targetType": {
"type": "string",
"description": "The segment's target type",
"enum": [
"included",
"excluded"
]
},
"value": {
"type": "integer",
"format": "int64",
"description": "The time, in Unix milliseconds, when the context should be removed from this segment. Required if kind is addExpiringTarget or updateExpiringTarget.",
"example": 1653469200000
},
"version": {
"type": "integer",
"description": "The version of the expiring target to update. Optional and only used if kind is updateExpiringTarget. If included, update will fail if version doesn't match current version of the expiring target.",
"example": 1
}
}
},
"patchSegmentInstruction": {
"type": "object",
"required": [
"kind",
"userKey",
"targetType"
],
"properties": {
"kind": {
"type": "string",
"description": "The type of change to make to the user's removal date from this segment",
"example": "addExpireUserTargetDate",
"enum": [
"addExpireUserTargetDate",
"updateExpireUserTargetDate",
"removeExpireUserTargetDate"
]
},
"userKey": {
"type": "string",
"description": "A unique key used to represent the user"
},
"targetType": {
"type": "string",
"description": "The segment's target type",
"enum": [
"included",
"excluded"
]
},
"value": {
"type": "integer",
"description": "The time, in Unix milliseconds, when the user should be removed from this segment. Required if kind is addExpireUserTargetDate or updateExpireUserTargetDate.",
"example": 1653469200000
},
"version": {
"type": "integer",
"description": "The version of the segment to update. Required if kind is updateExpireUserTargetDate.",
"example": 1
}
}
},
"patchSegmentRequest": {
"type": "object",
"required": [
"instructions"
],
"properties": {
"comment": {
"type": "string",
"description": "Optional description of changes",
"example": "optional comment"
},
"instructions": {
"type": "array",
"description": "Semantic patch instructions for the desired changes to the resource",
"items": {
"$ref": "#/components/schemas/patchSegmentInstruction"
},
"example": [
{
"contextKey": "contextKey",
"contextKind": "user",
"kind": "updateExpiringTarget",
"targetType": "included",
"value": 1587582000000,
"version": 0
}
]
}
}
},
"patchUsersRequest": {
"type": "object",
"required": [
"instructions"
],
"properties": {
"comment": {
"type": "string",
"description": "Optional comment describing the change",
"example": "optional comment"
},
"instructions": {
"type": "array",
"description": "The instructions to perform when updating",
"items": {
"$ref": "#/components/schemas/instructionUserRequest"
}
}
}
},
"permissionGrantInput": {
"type": "object",
"properties": {
"actionSet": {
"type": "string",
"description": "A group of related actions to allow. Specify either actionSet or actions. Use maintainTeam to add team maintainers.",
"example": "maintainTeam",
"enum": [
"maintainTeam"
]
},
"actions": {
"type": "array",
"description": "A list of actions to allow. Specify either actionSet or actions. To learn more, read [Role actions](https://launchdarkly.com/docs/ld-docs/home/account/role-actions).",
"items": {
"type": "string"
},
"example": [
"updateTeamMembers"
]
},
"memberIDs": {
"type": "array",
"description": "A list of member IDs who receive the permission grant.",
"items": {
"type": "string"
},
"example": [
"12ab3c45de678910fgh12345"
]
}
}
},
"postApprovalRequestApplyRequest": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Optional comment about the approval request",
"example": "Looks good, thanks for updating"
}
}
},
"postApprovalRequestReviewRequest": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"description": "The type of review for this approval request",
"example": "approve",
"enum": [
"approve",
"comment",
"decline"
]
},
"comment": {
"type": "string",
"description": "Optional comment about the approval request",
"example": "Looks good, thanks for updating"
}
}
},
"putBranch": {
"type": "object",
"required": [
"name",
"head",
"syncTime"
],
"properties": {
"name": {
"type": "string",
"description": "The branch name",
"example": "main"
},
"head": {
"type": "string",
"description": "An ID representing the branch HEAD. For example, a commit SHA.",
"example": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"
},
"updateSequenceId": {
"type": "integer",
"format": "int64",
"description": "An optional ID used to prevent older data from overwriting newer data. If no sequence ID is included, the newly submitted data will always be saved.",
"example": 25
},
"syncTime": {
"description": "A timestamp indicating when the branch was last synced",
"example": "1636558831870",
"$ref": "#/components/schemas/UnixMillis"
},
"references": {
"type": "array",
"description": "An array of flag references found on the branch",
"items": {
"$ref": "#/components/schemas/ReferenceRep"
}
},
"commitTime": {
"description": "A timestamp of the current commit",
"example": "1636558831870",
"$ref": "#/components/schemas/UnixMillis"
}
}
},
"repositoryPost": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "The repository name",
"example": "LaunchDarkly-Docs"
},
"sourceLink": {
"type": "string",
"description": "A URL to access the repository",
"example": "https://github.com/launchdarkly/LaunchDarkly-Docs"
},
"commitUrlTemplate": {
"type": "string",
"description": "A template for constructing a valid URL to view the commit",
"example": "https://github.com/launchdarkly/LaunchDarkly-Docs/commit/${sha}"
},
"hunkUrlTemplate": {
"type": "string",
"description": "A template for constructing a valid URL to view the hunk",
"example": "https://github.com/launchdarkly/LaunchDarkly-Docs/blob/${sha}/${filePath}#L${lineNumber}"
},
"type": {
"type": "string",
"description": "The type of repository. If not specified, the default value is custom.",
"example": "github",
"enum": [
"bitbucket",
"custom",
"github",
"gitlab"
]
},
"defaultBranch": {
"type": "string",
"description": "The repository's default branch. If not specified, the default value is main.",
"example": "main"
}
}
},
"sourceFlag": {
"type": "object",
"required": [
"key"
],
"properties": {
"key": {
"type": "string",
"description": "The environment key for the source environment",
"example": "environment-key-123abc"
},
"version": {
"type": "integer",
"description": "The version of the source flag from which to copy",
"example": 1
}
}
},
"subscriptionPost": {
"type": "object",
"required": [
"name",
"config"
],
"properties": {
"name": {
"type": "string",
"description": "A human-friendly name for your audit log subscription.",
"example": "Example audit log subscription."
},
"statements": {
"description": "The set of resources you wish to subscribe to audit log notifications for.",
"$ref": "#/components/schemas/StatementPostList"
},
"on": {
"type": "boolean",
"description": "Whether or not you want your subscription to actively send events.",
"example": false
},
"tags": {
"type": "array",
"description": "An array of tags for this subscription.",
"items": {
"type": "string"
},
"example": [
"testing-tag"
]
},
"config": {
"type": "object",
"additionalProperties": {},
"description": "The unique set of fields required to configure an audit log subscription integration of this type. Refer to the formVariables field in the corresponding manifest.json at https://github.com/launchdarkly/integration-framework/tree/main/integrations for a full list of fields for the integration you wish to configure.",
"example": {
"optional": "an optional property",
"required": "the required property",
"url": "https://example.com"
}
},
"url": {
"type": "string",
"description": "Slack webhook receiver URL. Only necessary for legacy Slack webhook integrations."
},
"apiKey": {
"type": "string",
"description": "Datadog API key. Only necessary for legacy Datadog webhook integrations."
}
}
},
"teamPatchInput": {
"type": "object",
"required": [
"instructions"
],
"properties": {
"comment": {
"type": "string",
"description": "Optional comment describing the update",
"example": "Optional comment about the update"
},
"instructions": {
"description": "The instructions to perform when updating. This should be an array with objects that look like {\"kind\": \"update_action\"}. Some instructions also require additional parameters as part of this object.",
"example": "[ { \"kind\": \"updateDescription\", \"value\": \"New description for the team\" } ]",
"$ref": "#/components/schemas/Instructions"
}
}
},
"teamPostInput": {
"type": "object",
"required": [
"key",
"name"
],
"properties": {
"customRoleKeys": {
"type": "array",
"description": "List of custom role keys the team will access",
"items": {
"type": "string"
},
"example": [
"example-role1",
"example-role2"
]
},
"description": {
"type": "string",
"description": "A description of the team",
"example": "An example team"
},
"key": {
"type": "string",
"description": "The team key",
"example": "team-key-123abc"
},
"memberIDs": {
"type": "array",
"description": "A list of member IDs who belong to the team",
"items": {
"type": "string"
},
"example": [
"12ab3c45de678910fgh12345"
]
},
"name": {
"type": "string",
"description": "A human-friendly name for the team",
"example": "Example team"
},
"permissionGrants": {
"type": "array",
"description": "A list of permission grants. Permission grants allow access to a specific action, without having to create or update a custom role.",
"items": {
"$ref": "#/components/schemas/permissionGrantInput"
}
},
"roleAttributes": {
"description": "A map of role attributes for the team",
"example": "{\"developerProjectKey\": [\"default\"]}",
"$ref": "#/components/schemas/RoleAttributeMap"
}
}
},
"teamsPatchInput": {
"type": "object",
"required": [
"instructions"
],
"properties": {
"comment": {
"type": "string",
"description": "Optional comment describing the update",
"example": "Optional comment about the update"
},
"instructions": {
"description": "The instructions to perform when updating. This should be an array with objects that look like {\"kind\": \"update_action\"}. Some instructions also require additional parameters as part of this object.",
"example": "[ { \"kind\": \"updateDescription\", \"value\": \"New description for the team\" } ]",
"$ref": "#/components/schemas/Instructions"
}
}
},
"triggerPost": {
"type": "object",
"required": [
"integrationKey"
],
"properties": {
"comment": {
"type": "string",
"description": "Optional comment describing the trigger",
"example": "example comment"
},
"instructions": {
"type": "array",
"description": "The action to perform when triggering. This should be an array with a single object that looks like {\"kind\": \"flag_action\"}. Supported flag actions are turnFlagOn and turnFlagOff.",
"items": {
"$ref": "#/components/schemas/Instruction"
},
"example": [
{
"kind": "turnFlagOn"
}
]
},
"integrationKey": {
"type": "string",
"description": "The unique identifier of the integration for your trigger. Use generic-trigger for integrations not explicitly supported.",
"example": "generic-trigger"
}
}
},
"upsertPayloadRep": {
"type": "object",
"required": [
"tags",
"temporary",
"booleanDefaults",
"defaultClientSideAvailability"
],
"properties": {
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"tags": {
"type": "array",
"description": "A list of default tags for each flag",
"items": {
"type": "string"
},
"example": [
"tag-1",
"tag-2"
]
},
"temporary": {
"type": "boolean",
"description": "Whether the flag should be temporary by default",
"example": true
},
"booleanDefaults": {
"$ref": "#/components/schemas/BooleanFlagDefaults"
},
"defaultClientSideAvailability": {
"description": "Which client-side SDK types can use this flag by default.",
"$ref": "#/components/schemas/DefaultClientSideAvailability"
}
}
},
"webhookPost": {
"type": "object",
"required": [
"url",
"sign",
"on"
],
"properties": {
"name": {
"type": "string",
"description": "A human-readable name for your webhook",
"example": "Example hook"
},
"url": {
"type": "string",
"description": "The URL of the remote webhook",
"example": "http://www.example.com"
},
"secret": {
"type": "string",
"description": "If sign is true, and the secret attribute is omitted, LaunchDarkly automatically generates a secret for you.",
"example": "frobozz"
},
"statements": {
"description": "Represents a Custom role policy, defining a resource kinds filter the webhook should respond to.",
"$ref": "#/components/schemas/StatementPostList"
},
"sign": {
"type": "boolean",
"description": "If sign is false, the webhook does not include a signature header, and the secret can be omitted.",
"example": true
},
"on": {
"type": "boolean",
"description": "Whether or not this webhook is enabled.",
"example": true
},
"tags": {
"type": "array",
"description": "List of tags for this webhook",
"items": {
"type": "string"
},
"example": []
}
}
},
"TagsCollection": {
"example": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"totalCount": 103,
"items": [
"ops",
"pro"
]
},
"properties": {
"items": {
"description": "List of tags",
"example": [
"ops",
"pro"
],
"items": {
"type": "string"
},
"type": "array"
},
"_links": {
"additionalProperties": {
"$ref": "#/components/schemas/TagsLink"
},
"type": "object"
},
"totalCount": {
"description": "The total number of tags",
"example": 103,
"type": "integer"
}
},
"required": [
"_links",
"items"
],
"type": "object"
},
"CoreLink": {
"example": {
"href": "href",
"type": "type"
},
"properties": {
"href": {
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"href",
"type"
],
"type": "object"
},
"Error": {
"example": {
"code": "code",
"message": "message"
},
"properties": {
"message": {
"type": "string"
},
"code": {
"type": "string"
}
},
"required": [
"code",
"message"
],
"type": "object"
},
"TagsLink": {
"example": {
"href": "href",
"type": "type"
},
"properties": {
"href": {
"type": "string"
},
"type": {
"type": "string"
}
},
"type": "object"
},
"AIConfigs": {
"example": {
"_links": {
"next": {
"href": "href",
"type": "type"
},
"last": {
"href": "href",
"type": "type"
},
"prev": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
},
"first": {
"href": "href",
"type": "type"
}
},
"totalCount": 2,
"items": [
{
"_maintainer": {
"kind": "kind"
},
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"evaluationMetricKey": "evaluationMetricKey",
"version": 0,
"tags": [
"tags",
"tags"
],
"dependencies": [
{
"type": "agent-graph",
"key": "key"
},
{
"type": "agent-graph",
"key": "key"
}
],
"mode": "completion",
"createdAt": 9,
"evaluationMetricKeys": [
"evaluationMetricKeys",
"evaluationMetricKeys"
],
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"variations": [
{
"judgeConfiguration": {
"judges": [
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
},
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
}
]
},
"instructions": "instructions",
"color": "color",
"_links": {
"parent": {
"href": "href",
"type": "type"
}
},
"description": "description",
"modelConfigKey": "modelConfigKey",
"judgingConfigKeys": [
"judgingConfigKeys",
"judgingConfigKeys"
],
"version": 1,
"tools": [
{
"customParameters": {
"key": ""
},
"version": 2,
"key": "key"
},
{
"customParameters": {
"key": ""
},
"version": 2,
"key": "key"
}
],
"createdAt": 6,
"_publishedAt": 5,
"_archivedAt": 5,
"name": "name",
"messages": [
{
"role": "role",
"content": "content"
},
{
"role": "role",
"content": "content"
}
],
"comment": "comment",
"model": "{}",
"_id": "_id",
"state": "state",
"key": "key"
},
{
"judgeConfiguration": {
"judges": [
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
},
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
}
]
},
"instructions": "instructions",
"color": "color",
"_links": {
"parent": {
"href": "href",
"type": "type"
}
},
"description": "description",
"modelConfigKey": "modelConfigKey",
"judgingConfigKeys": [
"judgingConfigKeys",
"judgingConfigKeys"
],
"version": 1,
"tools": [
{
"customParameters": {
"key": ""
},
"version": 2,
"key": "key"
},
{
"customParameters": {
"key": ""
},
"version": 2,
"key": "key"
}
],
"createdAt": 6,
"_publishedAt": 5,
"_archivedAt": 5,
"name": "name",
"messages": [
{
"role": "role",
"content": "content"
},
{
"role": "role",
"content": "content"
}
],
"comment": "comment",
"model": "{}",
"_id": "_id",
"state": "state",
"key": "key"
}
],
"name": "name",
"key": "key",
"isInverted": true,
"updatedAt": 3
},
{
"_maintainer": {
"kind": "kind"
},
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"evaluationMetricKey": "evaluationMetricKey",
"version": 0,
"tags": [
"tags",
"tags"
],
"dependencies": [
{
"type": "agent-graph",
"key": "key"
},
{
"type": "agent-graph",
"key": "key"
}
],
"mode": "completion",
"createdAt": 9,
"evaluationMetricKeys": [
"evaluationMetricKeys",
"evaluationMetricKeys"
],
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"variations": [
{
"judgeConfiguration": {
"judges": [
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
},
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
}
]
},
"instructions": "instructions",
"color": "color",
"_links": {
"parent": {
"href": "href",
"type": "type"
}
},
"description": "description",
"modelConfigKey": "modelConfigKey",
"judgingConfigKeys": [
"judgingConfigKeys",
"judgingConfigKeys"
],
"version": 1,
"tools": [
{
"customParameters": {
"key": ""
},
"version": 2,
"key": "key"
},
{
"customParameters": {
"key": ""
},
"version": 2,
"key": "key"
}
],
"createdAt": 6,
"_publishedAt": 5,
"_archivedAt": 5,
"name": "name",
"messages": [
{
"role": "role",
"content": "content"
},
{
"role": "role",
"content": "content"
}
],
"comment": "comment",
"model": "{}",
"_id": "_id",
"state": "state",
"key": "key"
},
{
"judgeConfiguration": {
"judges": [
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
},
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
}
]
},
"instructions": "instructions",
"color": "color",
"_links": {
"parent": {
"href": "href",
"type": "type"
}
},
"description": "description",
"modelConfigKey": "modelConfigKey",
"judgingConfigKeys": [
"judgingConfigKeys",
"judgingConfigKeys"
],
"version": 1,
"tools": [
{
"customParameters": {
"key": ""
},
"version": 2,
"key": "key"
},
{
"customParameters": {
"key": ""
},
"version": 2,
"key": "key"
}
],
"createdAt": 6,
"_publishedAt": 5,
"_archivedAt": 5,
"name": "name",
"messages": [
{
"role": "role",
"content": "content"
},
{
"role": "role",
"content": "content"
}
],
"comment": "comment",
"model": "{}",
"_id": "_id",
"state": "state",
"key": "key"
}
],
"name": "name",
"key": "key",
"isInverted": true,
"updatedAt": 3
}
]
},
"properties": {
"_links": {
"$ref": "#/components/schemas/PaginatedLinks"
},
"items": {
"items": {
"$ref": "#/components/schemas/AIConfig"
},
"type": "array"
},
"totalCount": {
"type": "integer"
}
},
"required": [
"items",
"totalCount"
],
"type": "object"
},
"AIConfig": {
"example": {
"_maintainer": {
"kind": "kind"
},
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"evaluationMetricKey": "evaluationMetricKey",
"version": 0,
"tags": [
"tags",
"tags"
],
"dependencies": [
{
"type": "agent-graph",
"key": "key"
},
{
"type": "agent-graph",
"key": "key"
}
],
"mode": "completion",
"createdAt": 9,
"evaluationMetricKeys": [
"evaluationMetricKeys",
"evaluationMetricKeys"
],
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"variations": [
{
"judgeConfiguration": {
"judges": [
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
},
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
}
]
},
"instructions": "instructions",
"color": "color",
"_links": {
"parent": {
"href": "href",
"type": "type"
}
},
"description": "description",
"modelConfigKey": "modelConfigKey",
"judgingConfigKeys": [
"judgingConfigKeys",
"judgingConfigKeys"
],
"version": 1,
"tools": [
{
"customParameters": {
"key": ""
},
"version": 2,
"key": "key"
},
{
"customParameters": {
"key": ""
},
"version": 2,
"key": "key"
}
],
"createdAt": 6,
"_publishedAt": 5,
"_archivedAt": 5,
"name": "name",
"messages": [
{
"role": "role",
"content": "content"
},
{
"role": "role",
"content": "content"
}
],
"comment": "comment",
"model": "{}",
"_id": "_id",
"state": "state",
"key": "key"
},
{
"judgeConfiguration": {
"judges": [
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
},
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
}
]
},
"instructions": "instructions",
"color": "color",
"_links": {
"parent": {
"href": "href",
"type": "type"
}
},
"description": "description",
"modelConfigKey": "modelConfigKey",
"judgingConfigKeys": [
"judgingConfigKeys",
"judgingConfigKeys"
],
"version": 1,
"tools": [
{
"customParameters": {
"key": ""
},
"version": 2,
"key": "key"
},
{
"customParameters": {
"key": ""
},
"version": 2,
"key": "key"
}
],
"createdAt": 6,
"_publishedAt": 5,
"_archivedAt": 5,
"name": "name",
"messages": [
{
"role": "role",
"content": "content"
},
{
"role": "role",
"content": "content"
}
],
"comment": "comment",
"model": "{}",
"_id": "_id",
"state": "state",
"key": "key"
}
],
"name": "name",
"key": "key",
"isInverted": true,
"updatedAt": 3
},
"properties": {
"_access": {
"$ref": "#/components/schemas/AiConfigsAccess"
},
"_links": {
"$ref": "#/components/schemas/ParentAndSelfLinks"
},
"description": {
"type": "string"
},
"key": {
"type": "string"
},
"_maintainer": {
"$ref": "#/components/schemas/AIConfig__maintainer"
},
"mode": {
"default": "completion",
"enum": [
"agent",
"completion",
"judge"
],
"type": "string"
},
"name": {
"type": "string"
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
},
"version": {
"type": "integer"
},
"variations": {
"items": {
"$ref": "#/components/schemas/AIConfigVariation"
},
"type": "array"
},
"createdAt": {
"format": "int64",
"type": "integer"
},
"updatedAt": {
"format": "int64",
"type": "integer"
},
"evaluationMetricKey": {
"description": "Evaluation metric key for this AI Config",
"type": "string"
},
"evaluationMetricKeys": {
"deprecated": true,
"description": "List of evaluation metric keys for this AI Config",
"items": {
"type": "string"
},
"type": "array"
},
"isInverted": {
"description": "Whether the evaluation metric is inverted, meaning a lower value is better if set as true",
"type": "boolean"
},
"dependencies": {
"description": "Resources that depend on this AI Config, grouped by type",
"items": {
"$ref": "#/components/schemas/AIConfigDependency"
},
"type": "array"
}
},
"required": [
"createdAt",
"description",
"key",
"name",
"tags",
"updatedAt",
"variations",
"version"
],
"type": "object"
},
"AIConfigPost": {
"example": {
"mode": "completion",
"defaultVariation": {
"judgeConfiguration": {
"judges": [
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
},
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
}
]
},
"instructions": "instructions",
"toolKeys": [
"toolKeys",
"toolKeys"
],
"name": "name",
"description": "description",
"messages": [
{
"role": "role",
"content": "content"
},
{
"role": "role",
"content": "content"
}
],
"comment": "comment",
"model": "{}",
"modelConfigKey": "modelConfigKey",
"tools": [
{
"version": 0,
"key": "key"
},
{
"version": 0,
"key": "key"
}
],
"key": "key"
},
"maintainerId": "507f1f77bcf86cd799439011",
"maintainerTeamKey": "example-team-key",
"name": "name",
"description": "",
"evaluationMetricKey": "evaluationMetricKey",
"key": "key",
"isInverted": true,
"tags": [
"tags",
"tags"
]
},
"properties": {
"description": {
"default": "",
"type": "string"
},
"key": {
"type": "string"
},
"maintainerId": {
"example": "507f1f77bcf86cd799439011",
"type": "string"
},
"maintainerTeamKey": {
"example": "example-team-key",
"type": "string"
},
"mode": {
"default": "completion",
"enum": [
"agent",
"completion",
"judge"
],
"type": "string"
},
"name": {
"type": "string"
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
},
"defaultVariation": {
"$ref": "#/components/schemas/AIConfigVariationPost"
},
"evaluationMetricKey": {
"description": "Evaluation metric key for this AI Config",
"type": "string"
},
"isInverted": {
"description": "Whether the evaluation metric is inverted, meaning a lower value is better if set as true",
"type": "boolean"
}
},
"required": [
"key",
"name"
],
"type": "object"
},
"AIConfigPatch": {
"example": {
"maintainerId": "507f1f77bcf86cd799439011",
"maintainerTeamKey": "example-team-key",
"name": "name",
"description": "description",
"evaluationMetricKey": "evaluationMetricKey",
"isInverted": true,
"tags": [
"tags",
"tags"
]
},
"properties": {
"description": {
"type": "string"
},
"maintainerId": {
"example": "507f1f77bcf86cd799439011",
"type": "string"
},
"maintainerTeamKey": {
"example": "example-team-key",
"type": "string"
},
"name": {
"type": "string"
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
},
"evaluationMetricKey": {
"description": "Evaluation metric key for this AI Config",
"type": "string"
},
"isInverted": {
"description": "Whether the evaluation metric is inverted, meaning a lower value is better if set as true",
"type": "boolean"
}
},
"type": "object"
},
"AIConfigVariation": {
"example": {
"judgeConfiguration": {
"judges": [
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
},
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
}
]
},
"instructions": "instructions",
"color": "color",
"_links": {
"parent": {
"href": "href",
"type": "type"
}
},
"description": "description",
"modelConfigKey": "modelConfigKey",
"judgingConfigKeys": [
"judgingConfigKeys",
"judgingConfigKeys"
],
"version": 1,
"tools": [
{
"customParameters": {
"key": ""
},
"version": 2,
"key": "key"
},
{
"customParameters": {
"key": ""
},
"version": 2,
"key": "key"
}
],
"createdAt": 6,
"_publishedAt": 5,
"_archivedAt": 5,
"name": "name",
"messages": [
{
"role": "role",
"content": "content"
},
{
"role": "role",
"content": "content"
}
],
"comment": "comment",
"model": "{}",
"_id": "_id",
"state": "state",
"key": "key"
},
"properties": {
"_links": {
"$ref": "#/components/schemas/ParentLink"
},
"color": {
"type": "string"
},
"comment": {
"type": "string"
},
"description": {
"description": "Returns the description for the agent. This is only returned for agent variations.",
"type": "string"
},
"instructions": {
"description": "Returns the instructions for the agent. This is only returned for agent variations.",
"type": "string"
},
"key": {
"type": "string"
},
"_id": {
"type": "string"
},
"messages": {
"items": {
"$ref": "#/components/schemas/Message"
},
"type": "array"
},
"model": {
"type": "object"
},
"modelConfigKey": {
"type": "string"
},
"name": {
"type": "string"
},
"createdAt": {
"format": "int64",
"type": "integer"
},
"version": {
"type": "integer"
},
"state": {
"type": "string"
},
"_archivedAt": {
"format": "int64",
"type": "integer"
},
"_publishedAt": {
"format": "int64",
"type": "integer"
},
"tools": {
"items": {
"$ref": "#/components/schemas/VariationTool"
},
"type": "array"
},
"judgeConfiguration": {
"$ref": "#/components/schemas/JudgeConfiguration"
},
"judgingConfigKeys": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"_id",
"createdAt",
"key",
"model",
"name",
"version"
],
"type": "object"
},
"AIConfigVariationsResponse": {
"example": {
"totalCount": 0,
"items": [
{
"judgeConfiguration": {
"judges": [
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
},
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
}
]
},
"instructions": "instructions",
"color": "color",
"_links": {
"parent": {
"href": "href",
"type": "type"
}
},
"description": "description",
"modelConfigKey": "modelConfigKey",
"judgingConfigKeys": [
"judgingConfigKeys",
"judgingConfigKeys"
],
"version": 1,
"tools": [
{
"customParameters": {
"key": ""
},
"version": 2,
"key": "key"
},
{
"customParameters": {
"key": ""
},
"version": 2,
"key": "key"
}
],
"createdAt": 6,
"_publishedAt": 5,
"_archivedAt": 5,
"name": "name",
"messages": [
{
"role": "role",
"content": "content"
},
{
"role": "role",
"content": "content"
}
],
"comment": "comment",
"model": "{}",
"_id": "_id",
"state": "state",
"key": "key"
},
{
"judgeConfiguration": {
"judges": [
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
},
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
}
]
},
"instructions": "instructions",
"color": "color",
"_links": {
"parent": {
"href": "href",
"type": "type"
}
},
"description": "description",
"modelConfigKey": "modelConfigKey",
"judgingConfigKeys": [
"judgingConfigKeys",
"judgingConfigKeys"
],
"version": 1,
"tools": [
{
"customParameters": {
"key": ""
},
"version": 2,
"key": "key"
},
{
"customParameters": {
"key": ""
},
"version": 2,
"key": "key"
}
],
"createdAt": 6,
"_publishedAt": 5,
"_archivedAt": 5,
"name": "name",
"messages": [
{
"role": "role",
"content": "content"
},
{
"role": "role",
"content": "content"
}
],
"comment": "comment",
"model": "{}",
"_id": "_id",
"state": "state",
"key": "key"
}
]
},
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/AIConfigVariation"
},
"type": "array"
},
"totalCount": {
"type": "integer"
}
},
"required": [
"items",
"totalCount"
],
"type": "object"
},
"AIConfigVariationPost": {
"example": {
"judgeConfiguration": {
"judges": [
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
},
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
}
]
},
"instructions": "instructions",
"toolKeys": [
"toolKeys",
"toolKeys"
],
"name": "name",
"description": "description",
"messages": [
{
"role": "role",
"content": "content"
},
{
"role": "role",
"content": "content"
}
],
"comment": "comment",
"model": "{}",
"modelConfigKey": "modelConfigKey",
"tools": [
{
"version": 0,
"key": "key"
},
{
"version": 0,
"key": "key"
}
],
"key": "key"
},
"properties": {
"comment": {
"description": "Human-readable description of this variation",
"type": "string"
},
"description": {
"description": "Returns the description for the agent. This is only returned for agent variations.",
"type": "string"
},
"instructions": {
"description": "Returns the instructions for the agent. This is only returned for agent variations.",
"type": "string"
},
"key": {
"type": "string"
},
"messages": {
"items": {
"$ref": "#/components/schemas/Message"
},
"type": "array"
},
"model": {
"type": "object"
},
"name": {
"type": "string"
},
"modelConfigKey": {
"type": "string"
},
"tools": {
"description": "List of tools to use for this variation. The latest version of the tool will be used.",
"items": {
"$ref": "#/components/schemas/VariationToolPost"
},
"type": "array"
},
"toolKeys": {
"description": "List of tool keys to use for this variation. The latest version of the tool will be used.",
"items": {
"type": "string"
},
"type": "array"
},
"judgeConfiguration": {
"$ref": "#/components/schemas/JudgeConfiguration"
}
},
"required": [
"key",
"name"
],
"type": "object"
},
"AIConfigVariationPatch": {
"example": {
"judgeConfiguration": {
"judges": [
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
},
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
}
]
},
"instructions": "instructions",
"toolKeys": [
"toolKeys",
"toolKeys"
],
"name": "name",
"description": "description",
"messages": [
{
"role": "role",
"content": "content"
},
{
"role": "role",
"content": "content"
}
],
"comment": "comment",
"model": "{}",
"published": true,
"state": "state",
"modelConfigKey": "modelConfigKey",
"tools": [
{
"version": 0,
"key": "key"
},
{
"version": 0,
"key": "key"
}
]
},
"properties": {
"comment": {
"description": "Human-readable description of what this patch changes",
"type": "string"
},
"description": {
"description": "Description for agent when AI Config is in agent mode.",
"type": "string"
},
"instructions": {
"description": "Instructions for agent when AI Config is in agent mode.",
"type": "string"
},
"messages": {
"items": {
"$ref": "#/components/schemas/Message"
},
"type": "array"
},
"model": {
"type": "object"
},
"modelConfigKey": {
"type": "string"
},
"name": {
"type": "string"
},
"published": {
"type": "boolean"
},
"state": {
"description": "One of 'archived', 'published'",
"type": "string"
},
"tools": {
"description": "List of tools to use for this variation. The latest version of the tool will be used.",
"items": {
"$ref": "#/components/schemas/VariationToolPost"
},
"type": "array"
},
"toolKeys": {
"description": "List of tool keys to use for this variation. The latest version of the tool will be used.",
"items": {
"type": "string"
},
"type": "array"
},
"judgeConfiguration": {
"$ref": "#/components/schemas/JudgeConfiguration"
}
},
"type": "object"
},
"JudgeConfiguration": {
"example": {
"judges": [
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
},
{
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
}
]
},
"properties": {
"judges": {
"description": "List of judges for this variation. When updating, this replaces all existing judge attachments, and if empty, removes all judge attachments.\n",
"items": {
"$ref": "#/components/schemas/JudgeAttachment"
},
"type": "array"
}
},
"type": "object"
},
"JudgeAttachment": {
"example": {
"samplingRate": 0.7061401,
"judgeConfigKey": "judgeConfigKey"
},
"properties": {
"judgeConfigKey": {
"description": "Key of the judge AI Config",
"type": "string"
},
"samplingRate": {
"description": "Sampling rate for this judge attachment (0.0 to 1.0)",
"format": "float",
"maximum": 1,
"minimum": 0,
"type": "number"
}
},
"required": [
"judgeConfigKey",
"samplingRate"
],
"type": "object"
},
"Message": {
"example": {
"role": "role",
"content": "content"
},
"properties": {
"content": {
"type": "string"
},
"role": {
"type": "string"
}
},
"required": [
"content",
"role"
],
"type": "object"
},
"ModelConfig": {
"example": {
"costPerOutputToken": 1.4658129805029452,
"costPerInputToken": 6.027456183070403,
"customParams": "{}",
"icon": "icon",
"global": true,
"params": "{}",
"version": 0,
"tags": [
"tags",
"tags"
],
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"provider": "provider",
"name": "name",
"id": "id",
"isRestricted": true,
"key": "key"
},
"properties": {
"_access": {
"$ref": "#/components/schemas/AiConfigsAccess"
},
"name": {
"description": "Human readable name of the model",
"type": "string"
},
"key": {
"description": "Unique key for the model",
"type": "string"
},
"id": {
"description": "Identifier for the model, for use with third party providers",
"type": "string"
},
"icon": {
"description": "Icon for the model",
"type": "string"
},
"provider": {
"description": "Provider for the model",
"type": "string"
},
"global": {
"description": "Whether the model is global",
"type": "boolean"
},
"params": {
"type": "object"
},
"customParams": {
"type": "object"
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
},
"version": {
"type": "integer"
},
"costPerInputToken": {
"description": "Cost per input token in USD",
"format": "double",
"type": "number"
},
"costPerOutputToken": {
"description": "Cost per output token in USD",
"format": "double",
"type": "number"
},
"isRestricted": {
"description": "Whether the model is restricted",
"type": "boolean"
}
},
"required": [
"global",
"id",
"isRestricted",
"key",
"name",
"tags",
"version"
],
"type": "object"
},
"ModelConfigPost": {
"example": {
"costPerOutputToken": 6.027456183070403,
"costPerInputToken": 0.8008281904610115,
"provider": "provider",
"customParams": "{}",
"name": "name",
"icon": "icon",
"id": "id",
"params": "{}",
"key": "key",
"tags": [
"tags",
"tags"
]
},
"properties": {
"name": {
"description": "Human readable name of the model",
"type": "string"
},
"key": {
"description": "Unique key for the model",
"type": "string"
},
"id": {
"description": "Identifier for the model, for use with third party providers",
"type": "string"
},
"icon": {
"description": "Icon for the model",
"type": "string"
},
"provider": {
"description": "Provider for the model",
"type": "string"
},
"params": {
"type": "object"
},
"customParams": {
"type": "object"
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
},
"costPerInputToken": {
"description": "Cost per input token in USD",
"format": "double",
"type": "number"
},
"costPerOutputToken": {
"description": "Cost per output token in USD",
"format": "double",
"type": "number"
}
},
"required": [
"id",
"key",
"name"
],
"type": "object"
},
"RestrictedModelsRequest": {
"example": {
"keys": [
"keys",
"keys"
]
},
"properties": {
"keys": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"keys"
],
"type": "object"
},
"RestrictedModelsResponse": {
"example": {
"successes": [
"successes",
"successes"
],
"errors": [
{
"code": 0,
"message": "message",
"key": "key"
},
{
"code": 0,
"message": "message",
"key": "key"
}
]
},
"properties": {
"successes": {
"items": {
"type": "string"
},
"type": "array"
},
"errors": {
"items": {
"$ref": "#/components/schemas/RestrictedModelError"
},
"type": "array"
}
},
"required": [
"errors",
"successes"
],
"type": "object"
},
"RestrictedModelError": {
"example": {
"code": 0,
"message": "message",
"key": "key"
},
"properties": {
"key": {
"type": "string"
},
"message": {
"type": "string"
},
"code": {
"type": "integer"
}
},
"required": [
"code",
"key",
"message"
],
"type": "object"
},
"MaintainerMember": {
"properties": {
"_id": {
"type": "string"
},
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"role": {
"type": "string"
}
},
"required": [
"_id",
"email",
"role"
],
"type": "object"
},
"AiConfigsMaintainerTeam": {
"properties": {
"key": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"key",
"name"
],
"type": "object"
},
"AIConfigTargeting": {
"example": {
"createdAt": 0,
"defaults": {
"onVariation": 6,
"offVariation": 1
},
"environments": {
"key": {
"trackEventsFallthrough": true,
"_environmentName": "_environmentName",
"contextTargets": [
{
"values": [
"values",
"values"
],
"contextKind": "contextKind",
"variation": 5
},
{
"values": [
"values",
"values"
],
"contextKind": "contextKind",
"variation": 5
}
],
"rules": [
{
"clauses": [
{
"op": "op",
"negate": true,
"values": [
"",
""
],
"attribute": "attribute",
"id": "id"
},
{
"op": "op",
"negate": true,
"values": [
"",
""
],
"attribute": "attribute",
"id": "id"
}
],
"trackEvents": true
},
{
"clauses": [
{
"op": "op",
"negate": true,
"values": [
"",
""
],
"attribute": "attribute",
"id": "id"
},
{
"op": "op",
"negate": true,
"values": [
"",
""
],
"attribute": "attribute",
"id": "id"
}
],
"trackEvents": true
}
],
"lastModified": 2,
"trackEvents": true,
"fallthrough": {
"rollout": {
"experimentAllocation": {
"defaultVariation": 2,
"canReshuffle": true,
"type": "type"
},
"seed": 7,
"variations": [
{
"weight": 3,
"_untracked": true,
"variation": 9
},
{
"weight": 3,
"_untracked": true,
"variation": 9
}
],
"contextKind": "contextKind",
"bucketBy": "bucketBy"
},
"variation": 5
},
"offVariation": 4,
"targets": [
{
"values": [
"values",
"values"
],
"contextKind": "contextKind",
"variation": 5
},
{
"values": [
"values",
"values"
],
"contextKind": "contextKind",
"variation": 5
}
],
"_version": 7,
"enabled": true
}
},
"variations": [
{
"name": "name",
"description": "description",
"_id": "_id",
"value": null
},
{
"name": "name",
"description": "description",
"_id": "_id",
"value": null
}
],
"experiments": {
"baselineIdx": 1,
"items": [
{
"metricKey": "my-metric",
"environments": [
"production",
"test",
"my-environment"
],
"_environmentSettings": {
"key": {
"startDate": 7,
"stopDate": 1,
"enabledPeriods": [
{
"startDate": 4,
"stopDate": 5
},
{
"startDate": 4,
"stopDate": 5
}
]
}
},
"_metric": {
"_maintainer": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_links": {
"parent": {
"href": "/api/v2/metrics/my-project",
"type": "application/json"
},
"self": {
"href": "/api/v2/metrics/my-project/my-metric",
"type": "application/json"
}
},
"description": "description",
"activeExperimentCount": 2,
"activeGuardedRolloutCount": 1,
"randomizationUnits": [
"user"
],
"guardedRolloutCount": 0,
"archived": true,
"urls": [
null,
null
],
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"_site": {
"href": "href",
"type": "type"
},
"selector": "selector",
"_version": 1,
"key": "metric-key-123abc",
"percentileValue": 95,
"kind": "custom",
"_attachedFlagCount": 0,
"metricGroupCount": 0,
"filters": {
"op": "op",
"negate": false,
"values": [
"JP"
],
"contextKind": "user",
"attribute": "country",
"type": "contextAttribute"
},
"_creationDate": 1,
"tags": [],
"eventDefault": {
"disabled": true,
"value": 0
},
"archivedAt": 6,
"maintainerId": "569fdeadbeef1644facecafe",
"unit": "unit",
"lastSeen": 1,
"successCriteria": "HigherThanBaseline",
"releasePolicyCount": 0,
"_versionId": "version-id-123abc",
"isNumeric": true,
"eventKey": "Order placed",
"experimentCount": 0,
"name": "My metric",
"_id": "5902deadbeef667524a01290",
"lastModified": {
"date": "2021-08-05T19:46:31.148Z"
},
"unitAggregationType": "average",
"category": "Error monitoring",
"analysisType": "mean",
"dataSource": {
"_name": "_name",
"_integrationKey": "_integrationKey",
"key": "key",
"environmentKey": "environmentKey"
}
}
},
{
"metricKey": "my-metric",
"environments": [
"production",
"test",
"my-environment"
],
"_environmentSettings": {
"key": {
"startDate": 7,
"stopDate": 1,
"enabledPeriods": [
{
"startDate": 4,
"stopDate": 5
},
{
"startDate": 4,
"stopDate": 5
}
]
}
},
"_metric": {
"_maintainer": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_links": {
"parent": {
"href": "/api/v2/metrics/my-project",
"type": "application/json"
},
"self": {
"href": "/api/v2/metrics/my-project/my-metric",
"type": "application/json"
}
},
"description": "description",
"activeExperimentCount": 2,
"activeGuardedRolloutCount": 1,
"randomizationUnits": [
"user"
],
"guardedRolloutCount": 0,
"archived": true,
"urls": [
null,
null
],
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"_site": {
"href": "href",
"type": "type"
},
"selector": "selector",
"_version": 1,
"key": "metric-key-123abc",
"percentileValue": 95,
"kind": "custom",
"_attachedFlagCount": 0,
"metricGroupCount": 0,
"filters": {
"op": "op",
"negate": false,
"values": [
"JP"
],
"contextKind": "user",
"attribute": "country",
"type": "contextAttribute"
},
"_creationDate": 1,
"tags": [],
"eventDefault": {
"disabled": true,
"value": 0
},
"archivedAt": 6,
"maintainerId": "569fdeadbeef1644facecafe",
"unit": "unit",
"lastSeen": 1,
"successCriteria": "HigherThanBaseline",
"releasePolicyCount": 0,
"_versionId": "version-id-123abc",
"isNumeric": true,
"eventKey": "Order placed",
"experimentCount": 0,
"name": "My metric",
"_id": "5902deadbeef667524a01290",
"lastModified": {
"date": "2021-08-05T19:46:31.148Z"
},
"unitAggregationType": "average",
"category": "Error monitoring",
"analysisType": "mean",
"dataSource": {
"_name": "_name",
"_integrationKey": "_integrationKey",
"key": "key",
"environmentKey": "environmentKey"
}
}
}
]
},
"name": "name",
"_version": 9,
"key": "key",
"tags": [
"tags",
"tags"
]
},
"properties": {
"createdAt": {
"description": "Unix timestamp in milliseconds",
"format": "int64",
"type": "integer"
},
"defaults": {
"$ref": "#/components/schemas/AIConfigTargetingDefaults"
},
"environments": {
"additionalProperties": {
"$ref": "#/components/schemas/AIConfigTargetingEnvironment"
},
"type": "object"
},
"experiments": {
"$ref": "#/components/schemas/AiConfigsExperimentInfoRep"
},
"key": {
"type": "string"
},
"name": {
"type": "string"
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
},
"variations": {
"items": {
"$ref": "#/components/schemas/AIConfigTargetingVariation"
},
"type": "array"
},
"_version": {
"type": "integer"
}
},
"required": [
"_version",
"createdAt",
"environments",
"experiments",
"key",
"name",
"tags",
"variations"
],
"type": "object"
},
"AIConfigTargetingPatch": {
"example": {
"instructions": [
{
"key": ""
},
{
"key": ""
}
],
"comment": "comment",
"environmentKey": "environmentKey"
},
"properties": {
"comment": {
"type": "string"
},
"environmentKey": {
"type": "string"
},
"instructions": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
}
},
"required": [
"environmentKey",
"instructions"
],
"type": "object"
},
"Metrics": {
"example": {
"judgeRelevance": 0.14894159,
"inputCost": 7.386281948385884,
"outputCost": 1.2315135367772556,
"generationSuccessCount": 5,
"inputTokens": 0,
"generationErrorCount": 2,
"thumbsDown": 9,
"judgeToxicity": 0.6846853,
"totalTokens": 1,
"judgeAccuracy": 0.10246457,
"generationCount": 5,
"timeToFirstTokenMs": 2,
"outputTokens": 6,
"thumbsUp": 7,
"durationMs": 3,
"satisfactionRating": 0.4145608
},
"properties": {
"inputTokens": {
"type": "integer"
},
"outputTokens": {
"type": "integer"
},
"totalTokens": {
"type": "integer"
},
"generationCount": {
"deprecated": true,
"description": "Number of attempted generations",
"type": "integer"
},
"generationSuccessCount": {
"description": "Number of successful generations",
"type": "integer"
},
"generationErrorCount": {
"description": "Number of generations with errors",
"type": "integer"
},
"thumbsUp": {
"type": "integer"
},
"thumbsDown": {
"type": "integer"
},
"durationMs": {
"type": "integer"
},
"timeToFirstTokenMs": {
"type": "integer"
},
"satisfactionRating": {
"description": "A value between 0 and 1 representing satisfaction rating",
"format": "float",
"maximum": 1,
"minimum": 0,
"type": "number"
},
"inputCost": {
"description": "Cost of input tokens in USD",
"format": "double",
"type": "number"
},
"outputCost": {
"description": "Cost of output tokens in USD",
"format": "double",
"type": "number"
},
"judgeAccuracy": {
"description": "Average accuracy judge score (0.0-1.0)",
"format": "float",
"maximum": 1,
"minimum": 0,
"type": "number"
},
"judgeRelevance": {
"description": "Average relevance judge score (0.0-1.0)",
"format": "float",
"maximum": 1,
"minimum": 0,
"type": "number"
},
"judgeToxicity": {
"description": "Average toxicity judge score (0.0-1.0)",
"format": "float",
"maximum": 1,
"minimum": 0,
"type": "number"
}
},
"type": "object"
},
"MetricByVariation": {
"example": {
"metrics": {
"judgeRelevance": 0.14894159,
"inputCost": 7.386281948385884,
"outputCost": 1.2315135367772556,
"generationSuccessCount": 5,
"inputTokens": 0,
"generationErrorCount": 2,
"thumbsDown": 9,
"judgeToxicity": 0.6846853,
"totalTokens": 1,
"judgeAccuracy": 0.10246457,
"generationCount": 5,
"timeToFirstTokenMs": 2,
"outputTokens": 6,
"thumbsUp": 7,
"durationMs": 3,
"satisfactionRating": 0.4145608
},
"variationKey": "variationKey"
},
"properties": {
"variationKey": {
"type": "string"
},
"metrics": {
"$ref": "#/components/schemas/Metrics"
}
},
"type": "object"
},
"MetricsByVariation": {
"items": {
"$ref": "#/components/schemas/MetricByVariation"
},
"type": "array"
},
"ParentAndSelfLinks": {
"description": "The location and content type of related resources",
"example": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"properties": {
"self": {
"$ref": "#/components/schemas/CoreLink"
},
"parent": {
"$ref": "#/components/schemas/CoreLink"
}
},
"required": [
"parent",
"self"
],
"type": "object"
},
"ParentLink": {
"example": {
"parent": {
"href": "href",
"type": "type"
}
},
"properties": {
"parent": {
"$ref": "#/components/schemas/CoreLink"
}
},
"required": [
"parent"
],
"type": "object"
},
"PaginatedLinks": {
"example": {
"next": {
"href": "href",
"type": "type"
},
"last": {
"href": "href",
"type": "type"
},
"prev": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
},
"first": {
"href": "href",
"type": "type"
}
},
"properties": {
"first": {
"$ref": "#/components/schemas/AiConfigsLink"
},
"last": {
"$ref": "#/components/schemas/AiConfigsLink"
},
"next": {
"$ref": "#/components/schemas/AiConfigsLink"
},
"prev": {
"$ref": "#/components/schemas/AiConfigsLink"
},
"self": {
"$ref": "#/components/schemas/AiConfigsLink"
}
},
"required": [
"self"
],
"type": "object"
},
"AIConfigTargetingDefaults": {
"example": {
"onVariation": 6,
"offVariation": 1
},
"properties": {
"onVariation": {
"type": "integer"
},
"offVariation": {
"type": "integer"
}
},
"required": [
"offVariation",
"onVariation"
]
},
"AIConfigTargetingEnvironment": {
"example": {
"trackEventsFallthrough": true,
"_environmentName": "_environmentName",
"contextTargets": [
{
"values": [
"values",
"values"
],
"contextKind": "contextKind",
"variation": 5
},
{
"values": [
"values",
"values"
],
"contextKind": "contextKind",
"variation": 5
}
],
"rules": [
{
"clauses": [
{
"op": "op",
"negate": true,
"values": [
"",
""
],
"attribute": "attribute",
"id": "id"
},
{
"op": "op",
"negate": true,
"values": [
"",
""
],
"attribute": "attribute",
"id": "id"
}
],
"trackEvents": true
},
{
"clauses": [
{
"op": "op",
"negate": true,
"values": [
"",
""
],
"attribute": "attribute",
"id": "id"
},
{
"op": "op",
"negate": true,
"values": [
"",
""
],
"attribute": "attribute",
"id": "id"
}
],
"trackEvents": true
}
],
"lastModified": 2,
"trackEvents": true,
"fallthrough": {
"rollout": {
"experimentAllocation": {
"defaultVariation": 2,
"canReshuffle": true,
"type": "type"
},
"seed": 7,
"variations": [
{
"weight": 3,
"_untracked": true,
"variation": 9
},
{
"weight": 3,
"_untracked": true,
"variation": 9
}
],
"contextKind": "contextKind",
"bucketBy": "bucketBy"
},
"variation": 5
},
"offVariation": 4,
"targets": [
{
"values": [
"values",
"values"
],
"contextKind": "contextKind",
"variation": 5
},
{
"values": [
"values",
"values"
],
"contextKind": "contextKind",
"variation": 5
}
],
"_version": 7,
"enabled": true
},
"properties": {
"contextTargets": {
"items": {
"$ref": "#/components/schemas/AIConfigTargetingEnvironmentTarget"
},
"type": "array"
},
"enabled": {
"type": "boolean"
},
"fallthrough": {
"$ref": "#/components/schemas/AIConfigTargetingEnvironmentFallthrough"
},
"lastModified": {
"format": "int64",
"type": "integer"
},
"offVariation": {
"type": "integer"
},
"rules": {
"items": {
"$ref": "#/components/schemas/AIConfigTargetingEnvironmentRule"
},
"type": "array"
},
"targets": {
"items": {
"$ref": "#/components/schemas/AIConfigTargetingEnvironmentTarget"
},
"type": "array"
},
"trackEvents": {
"type": "boolean"
},
"trackEventsFallthrough": {
"type": "boolean"
},
"_environmentName": {
"type": "string"
},
"_version": {
"type": "integer"
}
},
"required": [
"_environmentName",
"_version",
"contextTargets",
"enabled",
"fallthrough",
"lastModified",
"rules",
"targets",
"trackEvents",
"trackEventsFallthrough"
]
},
"AIConfigTargetingEnvironmentFallthrough": {
"example": {
"rollout": {
"experimentAllocation": {
"defaultVariation": 2,
"canReshuffle": true,
"type": "type"
},
"seed": 7,
"variations": [
{
"weight": 3,
"_untracked": true,
"variation": 9
},
{
"weight": 3,
"_untracked": true,
"variation": 9
}
],
"contextKind": "contextKind",
"bucketBy": "bucketBy"
},
"variation": 5
},
"properties": {
"variation": {
"type": "integer"
},
"rollout": {
"$ref": "#/components/schemas/AIConfigTargetingEnvironmentFallthroughRollout"
}
},
"type": "object"
},
"AIConfigTargetingEnvironmentFallthroughRollout": {
"example": {
"experimentAllocation": {
"defaultVariation": 2,
"canReshuffle": true,
"type": "type"
},
"seed": 7,
"variations": [
{
"weight": 3,
"_untracked": true,
"variation": 9
},
{
"weight": 3,
"_untracked": true,
"variation": 9
}
],
"contextKind": "contextKind",
"bucketBy": "bucketBy"
},
"properties": {
"bucketBy": {
"type": "string"
},
"contextKind": {
"type": "string"
},
"experimentAllocation": {
"$ref": "#/components/schemas/AIConfigTargetingEnvironmentFallthroughRolloutExperimentationAllocation"
},
"seed": {
"type": "integer"
},
"variations": {
"items": {
"$ref": "#/components/schemas/AIConfigTargetingEnvironmentFallthroughRolloutVariation"
},
"type": "array"
}
},
"required": [
"contextKind",
"variations"
],
"type": "object"
},
"AIConfigTargetingEnvironmentFallthroughRolloutExperimentationAllocation": {
"example": {
"defaultVariation": 2,
"canReshuffle": true,
"type": "type"
},
"properties": {
"canReshuffle": {
"type": "boolean"
},
"defaultVariation": {
"type": "integer"
},
"type": {
"type": "string"
}
},
"required": [
"canReshuffle",
"defaultVariation",
"type"
],
"type": "object"
},
"AIConfigTargetingEnvironmentFallthroughRolloutVariation": {
"example": {
"weight": 3,
"_untracked": true,
"variation": 9
},
"properties": {
"_untracked": {
"type": "boolean"
},
"variation": {
"type": "integer"
},
"weight": {
"type": "integer"
}
},
"required": [
"variation",
"weight"
],
"type": "object"
},
"AIConfigTargetingEnvironmentRule": {
"example": {
"clauses": [
{
"op": "op",
"negate": true,
"values": [
"",
""
],
"attribute": "attribute",
"id": "id"
},
{
"op": "op",
"negate": true,
"values": [
"",
""
],
"attribute": "attribute",
"id": "id"
}
],
"trackEvents": true
},
"properties": {
"clauses": {
"items": {
"$ref": "#/components/schemas/AIConfigTargetingEnvironmentRuleClause"
},
"type": "array"
},
"trackEvents": {
"type": "boolean"
}
},
"required": [
"clauses",
"trackEvents"
],
"type": "object"
},
"AIConfigTargetingEnvironmentRuleClause": {
"example": {
"op": "op",
"negate": true,
"values": [
"",
""
],
"attribute": "attribute",
"id": "id"
},
"properties": {
"attribute": {
"type": "string"
},
"id": {
"type": "string"
},
"negate": {
"type": "boolean"
},
"op": {
"type": "string"
},
"values": {
"items": {},
"type": "array"
}
},
"required": [
"attribute",
"id",
"negate",
"op",
"values"
],
"type": "object"
},
"AIConfigTargetingEnvironmentTarget": {
"example": {
"values": [
"values",
"values"
],
"contextKind": "contextKind",
"variation": 5
},
"properties": {
"contextKind": {
"type": "string"
},
"values": {
"items": {
"type": "string"
},
"type": "array"
},
"variation": {
"type": "integer"
}
},
"required": [
"contextKind",
"values",
"variation"
],
"type": "object"
},
"AIConfigTargetingVariation": {
"example": {
"name": "name",
"description": "description",
"_id": "_id",
"value": null
},
"properties": {
"_id": {
"type": "string"
},
"description": {
"type": "string"
},
"name": {
"type": "string"
},
"value": {
"$ref": "#/components/schemas/AIConfigTargetingVariation_value"
}
},
"required": [
"_id",
"description",
"name",
"value"
],
"type": "object"
},
"AIConfigTargetingVariationBoolean": {
"type": "boolean"
},
"AIConfigTargetingVariationJSON": {
"type": "object"
},
"AIConfigTargetingVariationNumber": {
"type": "number"
},
"AIConfigTargetingVariationString": {
"type": "string"
},
"AITool": {
"example": {
"schema": "{}",
"createdAt": 6,
"_maintainer": {
"kind": "kind"
},
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"customParameters": "{}",
"version": 0,
"key": "key"
},
"properties": {
"key": {
"type": "string"
},
"_access": {
"$ref": "#/components/schemas/AiConfigsAccess"
},
"_links": {
"$ref": "#/components/schemas/ParentAndSelfLinks"
},
"_maintainer": {
"$ref": "#/components/schemas/AIConfig__maintainer"
},
"description": {
"type": "string"
},
"schema": {
"description": "JSON Schema defining the tool's parameters for LLM consumption",
"type": "object"
},
"customParameters": {
"description": "Custom metadata and configuration for application-level use (not sent to LLM)",
"type": "object"
},
"version": {
"type": "integer"
},
"createdAt": {
"format": "int64",
"type": "integer"
}
},
"required": [
"createdAt",
"key",
"schema",
"version"
],
"type": "object"
},
"AITools": {
"example": {
"_links": {
"next": {
"href": "href",
"type": "type"
},
"last": {
"href": "href",
"type": "type"
},
"prev": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
},
"first": {
"href": "href",
"type": "type"
}
},
"totalCount": 1,
"items": [
{
"schema": "{}",
"createdAt": 6,
"_maintainer": {
"kind": "kind"
},
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"customParameters": "{}",
"version": 0,
"key": "key"
},
{
"schema": "{}",
"createdAt": 6,
"_maintainer": {
"kind": "kind"
},
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"customParameters": "{}",
"version": 0,
"key": "key"
}
]
},
"properties": {
"_links": {
"$ref": "#/components/schemas/PaginatedLinks"
},
"items": {
"items": {
"$ref": "#/components/schemas/AITool"
},
"type": "array"
},
"totalCount": {
"type": "integer"
}
},
"required": [
"items",
"totalCount"
],
"type": "object"
},
"AIToolPost": {
"example": {
"schema": "{}",
"maintainerId": "507f1f77bcf86cd799439011",
"maintainerTeamKey": "example-team-key",
"description": "description",
"customParameters": "{}",
"key": "key"
},
"properties": {
"key": {
"type": "string"
},
"maintainerId": {
"example": "507f1f77bcf86cd799439011",
"type": "string"
},
"maintainerTeamKey": {
"example": "example-team-key",
"type": "string"
},
"description": {
"type": "string"
},
"schema": {
"description": "JSON Schema defining the tool's parameters for LLM consumption",
"type": "object"
},
"customParameters": {
"description": "Custom metadata and configuration for application-level use (not sent to LLM)",
"type": "object"
}
},
"required": [
"key",
"schema"
],
"type": "object"
},
"AIToolPatch": {
"example": {
"schema": "{}",
"maintainerId": "507f1f77bcf86cd799439011",
"maintainerTeamKey": "example-team-key",
"description": "description",
"customParameters": "{}"
},
"properties": {
"maintainerId": {
"example": "507f1f77bcf86cd799439011",
"type": "string"
},
"maintainerTeamKey": {
"example": "example-team-key",
"type": "string"
},
"description": {
"type": "string"
},
"schema": {
"description": "JSON Schema defining the tool's parameters for LLM consumption",
"type": "object"
},
"customParameters": {
"description": "Custom metadata and configuration for application-level use (not sent to LLM)",
"type": "object"
}
},
"type": "object"
},
"VariationToolPost": {
"example": {
"version": 0,
"key": "key"
},
"properties": {
"key": {
"description": "The key of the tool to use.",
"type": "string"
},
"version": {
"description": "The version of the tool.",
"type": "integer"
}
},
"required": [
"key",
"version"
],
"type": "object"
},
"VariationTool": {
"example": {
"customParameters": {
"key": ""
},
"version": 2,
"key": "key"
},
"properties": {
"key": {
"description": "The key of the tool to use.",
"type": "string"
},
"version": {
"description": "The version of the tool.",
"type": "integer"
},
"customParameters": {
"additionalProperties": true,
"description": "Custom metadata and configuration for application-level use",
"type": "object"
}
},
"required": [
"key",
"version"
],
"type": "object"
},
"AgentGraphPost": {
"description": "Request body for creating an agent graph",
"example": {
"maintainerId": "507f1f77bcf86cd799439011",
"rootConfigKey": "rootConfigKey",
"name": "name",
"maintainerTeamKey": "example-team-key",
"edges": [
{
"sourceConfig": "sourceConfig",
"targetConfig": "targetConfig",
"handoff": "{}",
"key": "key"
},
{
"sourceConfig": "sourceConfig",
"targetConfig": "targetConfig",
"handoff": "{}",
"key": "key"
}
],
"description": "description",
"key": "key"
},
"properties": {
"key": {
"description": "A unique key for the agent graph",
"type": "string"
},
"name": {
"description": "A human-readable name for the agent graph",
"type": "string"
},
"description": {
"description": "A description of the agent graph",
"type": "string"
},
"maintainerId": {
"description": "The ID of the member who maintains this agent graph",
"example": "507f1f77bcf86cd799439011",
"type": "string"
},
"maintainerTeamKey": {
"description": "The key of the team that maintains this agent graph",
"example": "example-team-key",
"type": "string"
},
"rootConfigKey": {
"description": "The AI Config key of the root node. A missing root implies a newly created graph with metadata only.",
"type": "string"
},
"edges": {
"description": "The edges in the graph. If edges or rootConfigKey is present, both must be present.",
"items": {
"$ref": "#/components/schemas/AgentGraphEdgePost"
},
"type": "array"
}
},
"required": [
"key",
"name"
],
"type": "object"
},
"AgentGraphEdgePost": {
"description": "An edge in an agent graph connecting two AI Configs",
"example": {
"sourceConfig": "sourceConfig",
"targetConfig": "targetConfig",
"handoff": "{}",
"key": "key"
},
"properties": {
"key": {
"description": "A unique key for this edge within the graph",
"type": "string"
},
"sourceConfig": {
"description": "The AI Config key that is the source of this edge",
"type": "string"
},
"targetConfig": {
"description": "The AI Config key that is the target of this edge",
"type": "string"
},
"handoff": {
"description": "The handoff options from the source AI Config to the target AI Config",
"type": "object"
}
},
"required": [
"key",
"sourceConfig",
"targetConfig"
],
"type": "object"
},
"AgentGraph": {
"description": "An agent graph representing a directed graph of AI Configs",
"example": {
"createdAt": 0,
"_maintainer": {
"kind": "kind"
},
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"rootConfigKey": "rootConfigKey",
"name": "name",
"edges": [
{
"sourceConfig": "sourceConfig",
"targetConfig": "targetConfig",
"handoff": "{}",
"key": "key"
},
{
"sourceConfig": "sourceConfig",
"targetConfig": "targetConfig",
"handoff": "{}",
"key": "key"
}
],
"description": "description",
"key": "key",
"updatedAt": 6
},
"properties": {
"_access": {
"$ref": "#/components/schemas/AiConfigsAccess"
},
"key": {
"description": "A unique key for the agent graph",
"type": "string"
},
"name": {
"description": "A human-readable name for the agent graph",
"type": "string"
},
"description": {
"description": "A description of the agent graph",
"type": "string"
},
"_maintainer": {
"$ref": "#/components/schemas/AgentGraph__maintainer"
},
"rootConfigKey": {
"description": "The AI Config key of the root node",
"type": "string"
},
"edges": {
"description": "The edges in the graph",
"items": {
"$ref": "#/components/schemas/AgentGraphEdge"
},
"type": "array"
},
"createdAt": {
"format": "int64",
"type": "integer"
},
"updatedAt": {
"format": "int64",
"type": "integer"
}
},
"required": [
"createdAt",
"key",
"name",
"updatedAt"
],
"type": "object"
},
"AgentGraphEdge": {
"description": "An edge in an agent graph connecting two AI Configs",
"example": {
"sourceConfig": "sourceConfig",
"targetConfig": "targetConfig",
"handoff": "{}",
"key": "key"
},
"properties": {
"key": {
"description": "A unique key for this edge within the graph",
"type": "string"
},
"sourceConfig": {
"description": "The AI Config key that is the source of this edge",
"type": "string"
},
"targetConfig": {
"description": "The AI Config key that is the target of this edge",
"type": "string"
},
"handoff": {
"description": "The handoff options from the source AI Config to the target AI Config",
"type": "object"
}
},
"required": [
"key",
"sourceConfig",
"targetConfig"
],
"type": "object"
},
"AgentGraphs": {
"description": "A collection of agent graphs",
"example": {
"_links": {
"next": {
"href": "href",
"type": "type"
},
"last": {
"href": "href",
"type": "type"
},
"prev": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
},
"first": {
"href": "href",
"type": "type"
}
},
"totalCount": 1,
"items": [
{
"createdAt": 0,
"_maintainer": {
"kind": "kind"
},
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"rootConfigKey": "rootConfigKey",
"name": "name",
"edges": [
{
"sourceConfig": "sourceConfig",
"targetConfig": "targetConfig",
"handoff": "{}",
"key": "key"
},
{
"sourceConfig": "sourceConfig",
"targetConfig": "targetConfig",
"handoff": "{}",
"key": "key"
}
],
"description": "description",
"key": "key",
"updatedAt": 6
},
{
"createdAt": 0,
"_maintainer": {
"kind": "kind"
},
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"rootConfigKey": "rootConfigKey",
"name": "name",
"edges": [
{
"sourceConfig": "sourceConfig",
"targetConfig": "targetConfig",
"handoff": "{}",
"key": "key"
},
{
"sourceConfig": "sourceConfig",
"targetConfig": "targetConfig",
"handoff": "{}",
"key": "key"
}
],
"description": "description",
"key": "key",
"updatedAt": 6
}
]
},
"properties": {
"_links": {
"$ref": "#/components/schemas/PaginatedLinks"
},
"items": {
"items": {
"$ref": "#/components/schemas/AgentGraph"
},
"type": "array"
},
"totalCount": {
"type": "integer"
}
},
"required": [
"items",
"totalCount"
],
"type": "object"
},
"AgentGraphPatch": {
"description": "Request body for updating an agent graph. If rootConfigKey or edges are present, both must be present.",
"example": {
"maintainerId": "507f1f77bcf86cd799439011",
"rootConfigKey": "rootConfigKey",
"name": "name",
"maintainerTeamKey": "example-team-key",
"edges": [
{
"sourceConfig": "sourceConfig",
"targetConfig": "targetConfig",
"handoff": "{}",
"key": "key"
},
{
"sourceConfig": "sourceConfig",
"targetConfig": "targetConfig",
"handoff": "{}",
"key": "key"
}
],
"description": "description"
},
"properties": {
"name": {
"description": "A human-readable name for the agent graph",
"type": "string"
},
"description": {
"description": "A description of the agent graph",
"type": "string"
},
"maintainerId": {
"description": "The ID of the member who maintains this agent graph. Pass an empty string to remove maintainer.",
"example": "507f1f77bcf86cd799439011",
"type": "string"
},
"maintainerTeamKey": {
"description": "The key of the team that maintains this agent graph. Pass an empty string to remove maintainer.",
"example": "example-team-key",
"type": "string"
},
"rootConfigKey": {
"description": "The AI Config key of the root node. If present, edges must also be present.",
"type": "string"
},
"edges": {
"description": "The edges in the graph. If present, rootConfigKey must also be present. Replaces all existing edges.",
"items": {
"$ref": "#/components/schemas/AgentGraphEdge"
},
"type": "array"
}
},
"type": "object"
},
"AIConfigDependency": {
"description": "A resource that depends on this AI Config",
"example": {
"type": "agent-graph",
"key": "key"
},
"properties": {
"type": {
"description": "The type of the dependent resource",
"enum": [
"agent-graph"
],
"type": "string"
},
"key": {
"description": "The key of the dependent resource",
"type": "string"
}
},
"required": [
"key",
"type"
],
"type": "object"
},
"AccessRep": {
"$ref": "#/components/schemas/AiConfigsAccess"
},
"AiConfigsAccess": {
"example": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"properties": {
"denied": {
"items": {
"$ref": "#/components/schemas/AiConfigsAccessDenied"
},
"type": "array"
},
"allowed": {
"items": {
"$ref": "#/components/schemas/AiConfigsAccessAllowedRep"
},
"type": "array"
}
},
"required": [
"allowed",
"denied"
],
"type": "object"
},
"AiConfigsAccessDenied": {
"example": {
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
"properties": {
"action": {
"type": "string"
},
"reason": {
"$ref": "#/components/schemas/AiConfigsAccessDeniedReason"
}
},
"required": [
"action",
"reason"
],
"type": "object"
},
"AiConfigsAccessDeniedReason": {
"example": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"properties": {
"resources": {
"description": "Resource specifier strings",
"example": [
"proj/*:env/*;qa_*:/flag/*"
],
"items": {
"type": "string"
},
"type": "array"
},
"notResources": {
"description": "Targeted resources are the resources NOT in this list. The resources and notActions fields must be empty to use this field.",
"items": {
"type": "string"
},
"type": "array"
},
"actions": {
"description": "Actions to perform on a resource",
"example": [
"*"
],
"items": {
"$ref": "#/components/schemas/ActionSpecifier"
},
"type": "array"
},
"notActions": {
"description": "Targeted actions are the actions NOT in this list. The actions and notResources fields must be empty to use this field.",
"items": {
"$ref": "#/components/schemas/ActionSpecifier"
},
"type": "array"
},
"effect": {
"description": "Whether this statement should allow or deny actions on the resources.",
"enum": [
"allow",
"deny"
],
"example": "allow",
"type": "string"
},
"role_name": {
"type": "string"
}
},
"required": [
"effect"
],
"type": "object"
},
"AiConfigsAccessAllowedRep": {
"example": {
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
"properties": {
"action": {
"type": "string"
},
"reason": {
"$ref": "#/components/schemas/AiConfigsAccessAllowedReason"
}
},
"required": [
"action",
"reason"
],
"type": "object"
},
"AiConfigsAccessAllowedReason": {
"example": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"properties": {
"resources": {
"description": "Resource specifier strings",
"example": [
"proj/*:env/*;qa_*:/flag/*"
],
"items": {
"type": "string"
},
"type": "array"
},
"notResources": {
"description": "Targeted resources are the resources NOT in this list. The resources and notActions fields must be empty to use this field.",
"items": {
"type": "string"
},
"type": "array"
},
"actions": {
"description": "Actions to perform on a resource",
"example": [
"*"
],
"items": {
"$ref": "#/components/schemas/ActionSpecifier"
},
"type": "array"
},
"notActions": {
"description": "Targeted actions are the actions NOT in this list. The actions and notResources fields must be empty to use this field.",
"items": {
"$ref": "#/components/schemas/ActionSpecifier"
},
"type": "array"
},
"effect": {
"description": "Whether this statement should allow or deny actions on the resources.",
"enum": [
"allow",
"deny"
],
"example": "allow",
"type": "string"
},
"role_name": {
"type": "string"
}
},
"required": [
"effect"
],
"type": "object"
},
"AiConfigsExperimentInfoRep": {
"example": {
"baselineIdx": 1,
"items": [
{
"metricKey": "my-metric",
"environments": [
"production",
"test",
"my-environment"
],
"_environmentSettings": {
"key": {
"startDate": 7,
"stopDate": 1,
"enabledPeriods": [
{
"startDate": 4,
"stopDate": 5
},
{
"startDate": 4,
"stopDate": 5
}
]
}
},
"_metric": {
"_maintainer": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_links": {
"parent": {
"href": "/api/v2/metrics/my-project",
"type": "application/json"
},
"self": {
"href": "/api/v2/metrics/my-project/my-metric",
"type": "application/json"
}
},
"description": "description",
"activeExperimentCount": 2,
"activeGuardedRolloutCount": 1,
"randomizationUnits": [
"user"
],
"guardedRolloutCount": 0,
"archived": true,
"urls": [
null,
null
],
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"_site": {
"href": "href",
"type": "type"
},
"selector": "selector",
"_version": 1,
"key": "metric-key-123abc",
"percentileValue": 95,
"kind": "custom",
"_attachedFlagCount": 0,
"metricGroupCount": 0,
"filters": {
"op": "op",
"negate": false,
"values": [
"JP"
],
"contextKind": "user",
"attribute": "country",
"type": "contextAttribute"
},
"_creationDate": 1,
"tags": [],
"eventDefault": {
"disabled": true,
"value": 0
},
"archivedAt": 6,
"maintainerId": "569fdeadbeef1644facecafe",
"unit": "unit",
"lastSeen": 1,
"successCriteria": "HigherThanBaseline",
"releasePolicyCount": 0,
"_versionId": "version-id-123abc",
"isNumeric": true,
"eventKey": "Order placed",
"experimentCount": 0,
"name": "My metric",
"_id": "5902deadbeef667524a01290",
"lastModified": {
"date": "2021-08-05T19:46:31.148Z"
},
"unitAggregationType": "average",
"category": "Error monitoring",
"analysisType": "mean",
"dataSource": {
"_name": "_name",
"_integrationKey": "_integrationKey",
"key": "key",
"environmentKey": "environmentKey"
}
}
},
{
"metricKey": "my-metric",
"environments": [
"production",
"test",
"my-environment"
],
"_environmentSettings": {
"key": {
"startDate": 7,
"stopDate": 1,
"enabledPeriods": [
{
"startDate": 4,
"stopDate": 5
},
{
"startDate": 4,
"stopDate": 5
}
]
}
},
"_metric": {
"_maintainer": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_links": {
"parent": {
"href": "/api/v2/metrics/my-project",
"type": "application/json"
},
"self": {
"href": "/api/v2/metrics/my-project/my-metric",
"type": "application/json"
}
},
"description": "description",
"activeExperimentCount": 2,
"activeGuardedRolloutCount": 1,
"randomizationUnits": [
"user"
],
"guardedRolloutCount": 0,
"archived": true,
"urls": [
null,
null
],
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"_site": {
"href": "href",
"type": "type"
},
"selector": "selector",
"_version": 1,
"key": "metric-key-123abc",
"percentileValue": 95,
"kind": "custom",
"_attachedFlagCount": 0,
"metricGroupCount": 0,
"filters": {
"op": "op",
"negate": false,
"values": [
"JP"
],
"contextKind": "user",
"attribute": "country",
"type": "contextAttribute"
},
"_creationDate": 1,
"tags": [],
"eventDefault": {
"disabled": true,
"value": 0
},
"archivedAt": 6,
"maintainerId": "569fdeadbeef1644facecafe",
"unit": "unit",
"lastSeen": 1,
"successCriteria": "HigherThanBaseline",
"releasePolicyCount": 0,
"_versionId": "version-id-123abc",
"isNumeric": true,
"eventKey": "Order placed",
"experimentCount": 0,
"name": "My metric",
"_id": "5902deadbeef667524a01290",
"lastModified": {
"date": "2021-08-05T19:46:31.148Z"
},
"unitAggregationType": "average",
"category": "Error monitoring",
"analysisType": "mean",
"dataSource": {
"_name": "_name",
"_integrationKey": "_integrationKey",
"key": "key",
"environmentKey": "environmentKey"
}
}
}
]
},
"properties": {
"baselineIdx": {
"type": "integer"
},
"items": {
"items": {
"$ref": "#/components/schemas/AiConfigsLegacyExperimentRep"
},
"type": "array"
}
},
"required": [
"baselineIdx",
"items"
],
"type": "object"
},
"AiConfigsLegacyExperimentRep": {
"example": {
"metricKey": "my-metric",
"environments": [
"production",
"test",
"my-environment"
],
"_environmentSettings": {
"key": {
"startDate": 7,
"stopDate": 1,
"enabledPeriods": [
{
"startDate": 4,
"stopDate": 5
},
{
"startDate": 4,
"stopDate": 5
}
]
}
},
"_metric": {
"_maintainer": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_links": {
"parent": {
"href": "/api/v2/metrics/my-project",
"type": "application/json"
},
"self": {
"href": "/api/v2/metrics/my-project/my-metric",
"type": "application/json"
}
},
"description": "description",
"activeExperimentCount": 2,
"activeGuardedRolloutCount": 1,
"randomizationUnits": [
"user"
],
"guardedRolloutCount": 0,
"archived": true,
"urls": [
null,
null
],
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"_site": {
"href": "href",
"type": "type"
},
"selector": "selector",
"_version": 1,
"key": "metric-key-123abc",
"percentileValue": 95,
"kind": "custom",
"_attachedFlagCount": 0,
"metricGroupCount": 0,
"filters": {
"op": "op",
"negate": false,
"values": [
"JP"
],
"contextKind": "user",
"attribute": "country",
"type": "contextAttribute"
},
"_creationDate": 1,
"tags": [],
"eventDefault": {
"disabled": true,
"value": 0
},
"archivedAt": 6,
"maintainerId": "569fdeadbeef1644facecafe",
"unit": "unit",
"lastSeen": 1,
"successCriteria": "HigherThanBaseline",
"releasePolicyCount": 0,
"_versionId": "version-id-123abc",
"isNumeric": true,
"eventKey": "Order placed",
"experimentCount": 0,
"name": "My metric",
"_id": "5902deadbeef667524a01290",
"lastModified": {
"date": "2021-08-05T19:46:31.148Z"
},
"unitAggregationType": "average",
"category": "Error monitoring",
"analysisType": "mean",
"dataSource": {
"_name": "_name",
"_integrationKey": "_integrationKey",
"key": "key",
"environmentKey": "environmentKey"
}
}
},
"properties": {
"metricKey": {
"example": "my-metric",
"type": "string"
},
"_metric": {
"$ref": "#/components/schemas/AiConfigsMetricListingRep"
},
"environments": {
"example": [
"production",
"test",
"my-environment"
],
"items": {
"type": "string"
},
"type": "array"
},
"_environmentSettings": {
"additionalProperties": {
"$ref": "#/components/schemas/AiConfigsExperimentEnvironmentSettingRep"
},
"type": "object"
}
},
"type": "object"
},
"AiConfigsMetricListingRep": {
"example": {
"_maintainer": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_links": {
"parent": {
"href": "/api/v2/metrics/my-project",
"type": "application/json"
},
"self": {
"href": "/api/v2/metrics/my-project/my-metric",
"type": "application/json"
}
},
"description": "description",
"activeExperimentCount": 2,
"activeGuardedRolloutCount": 1,
"randomizationUnits": [
"user"
],
"guardedRolloutCount": 0,
"archived": true,
"urls": [
null,
null
],
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"_site": {
"href": "href",
"type": "type"
},
"selector": "selector",
"_version": 1,
"key": "metric-key-123abc",
"percentileValue": 95,
"kind": "custom",
"_attachedFlagCount": 0,
"metricGroupCount": 0,
"filters": {
"op": "op",
"negate": false,
"values": [
"JP"
],
"contextKind": "user",
"attribute": "country",
"type": "contextAttribute"
},
"_creationDate": 1,
"tags": [],
"eventDefault": {
"disabled": true,
"value": 0
},
"archivedAt": 6,
"maintainerId": "569fdeadbeef1644facecafe",
"unit": "unit",
"lastSeen": 1,
"successCriteria": "HigherThanBaseline",
"releasePolicyCount": 0,
"_versionId": "version-id-123abc",
"isNumeric": true,
"eventKey": "Order placed",
"experimentCount": 0,
"name": "My metric",
"_id": "5902deadbeef667524a01290",
"lastModified": {
"date": "2021-08-05T19:46:31.148Z"
},
"unitAggregationType": "average",
"category": "Error monitoring",
"analysisType": "mean",
"dataSource": {
"_name": "_name",
"_integrationKey": "_integrationKey",
"key": "key",
"environmentKey": "environmentKey"
}
},
"properties": {
"experimentCount": {
"description": "The number of experiments using this metric",
"example": 0,
"type": "integer"
},
"metricGroupCount": {
"description": "The number of metric groups using this metric",
"example": 0,
"type": "integer"
},
"guardedRolloutCount": {
"description": "The number of guarded rollouts using this metric",
"example": 0,
"type": "integer"
},
"releasePolicyCount": {
"description": "The number of release policies using this metric",
"example": 0,
"type": "integer"
},
"activeExperimentCount": {
"description": "The number of active experiments using this metric",
"example": 2,
"type": "integer"
},
"activeGuardedRolloutCount": {
"description": "The number of active guarded rollouts using this metric",
"example": 1,
"type": "integer"
},
"_id": {
"description": "The ID of this metric",
"example": "5902deadbeef667524a01290",
"type": "string"
},
"_versionId": {
"description": "The version ID of the metric",
"example": "version-id-123abc",
"type": "string"
},
"_version": {
"description": "Version of the metric",
"example": 1,
"type": "integer"
},
"key": {
"description": "A unique key to reference the metric",
"example": "metric-key-123abc",
"type": "string"
},
"name": {
"description": "A human-friendly name for the metric",
"example": "My metric",
"type": "string"
},
"kind": {
"description": "The kind of event the metric tracks",
"enum": [
"pageview",
"click",
"custom"
],
"example": "custom",
"type": "string"
},
"_attachedFlagCount": {
"description": "The number of feature flags currently attached to this metric",
"example": 0,
"type": "integer"
},
"_links": {
"additionalProperties": {
"$ref": "#/components/schemas/AiConfigsLink"
},
"description": "The location and content type of related resources",
"example": {
"parent": {
"href": "/api/v2/metrics/my-project",
"type": "application/json"
},
"self": {
"href": "/api/v2/metrics/my-project/my-metric",
"type": "application/json"
}
},
"type": "object"
},
"_site": {
"$ref": "#/components/schemas/AiConfigsLink"
},
"_access": {
"$ref": "#/components/schemas/AiConfigsAccess"
},
"tags": {
"description": "Tags for the metric",
"example": [],
"items": {
"type": "string"
},
"type": "array"
},
"_creationDate": {
"format": "int64",
"type": "integer"
},
"lastModified": {
"$ref": "#/components/schemas/AiConfigsModification"
},
"maintainerId": {
"description": "The ID of the member who maintains this metric",
"example": "569fdeadbeef1644facecafe",
"type": "string"
},
"_maintainer": {
"$ref": "#/components/schemas/AiConfigsMemberSummary"
},
"description": {
"description": "Description of the metric",
"type": "string"
},
"category": {
"description": "The category of the metric",
"example": "Error monitoring",
"type": "string"
},
"isNumeric": {
"description": "For custom metrics, whether to track numeric changes in value against a baseline (true) or to track a conversion when an end user takes an action (false).",
"example": true,
"type": "boolean"
},
"successCriteria": {
"description": "For custom metrics, the success criteria",
"enum": [
"HigherThanBaseline",
"LowerThanBaseline"
],
"type": "string"
},
"unit": {
"description": "For numeric custom metrics, the unit of measure",
"type": "string"
},
"eventKey": {
"description": "For custom metrics, the event key to use in your code",
"example": "Order placed",
"type": "string"
},
"randomizationUnits": {
"description": "An array of randomization units allowed for this metric",
"example": [
"user"
],
"items": {
"type": "string"
},
"type": "array"
},
"filters": {
"$ref": "#/components/schemas/AiConfigsFilter"
},
"unitAggregationType": {
"description": "The method by which multiple unit event values are aggregated",
"enum": [
"average",
"sum"
],
"example": "average",
"type": "string"
},
"analysisType": {
"description": "The method for analyzing metric events",
"enum": [
"mean",
"percentile"
],
"example": "mean",
"type": "string"
},
"percentileValue": {
"description": "The percentile for the analysis method. An integer denoting the target percentile between 0 and 100. Required when analysisType is percentile.",
"example": 95,
"type": "integer"
},
"eventDefault": {
"$ref": "#/components/schemas/AiConfigsMetricEventDefaultRep"
},
"dataSource": {
"$ref": "#/components/schemas/AiConfigsMetricDataSourceRefRep"
},
"lastSeen": {
"format": "int64",
"type": "integer"
},
"archived": {
"description": "Whether the metric version is archived",
"type": "boolean"
},
"archivedAt": {
"format": "int64",
"type": "integer"
},
"selector": {
"description": "For click metrics, the CSS selectors",
"type": "string"
},
"urls": {
"items": {
"$ref": "#/components/schemas/UrlMatcher"
},
"type": "array"
}
},
"required": [
"_creationDate",
"_id",
"_links",
"_versionId",
"dataSource",
"key",
"kind",
"name",
"tags"
],
"type": "object"
},
"AiConfigsLink": {
"example": {
"href": "href",
"type": "type"
},
"properties": {
"href": {
"type": "string"
},
"type": {
"type": "string"
}
},
"type": "object"
},
"AiConfigsModification": {
"example": {
"date": "2021-08-05T19:46:31.148Z"
},
"properties": {
"date": {
"example": "2021-08-05T19:46:31.148Z",
"format": "date-time",
"type": "string"
}
},
"type": "object"
},
"AiConfigsMemberSummary": {
"example": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"properties": {
"_links": {
"additionalProperties": {
"$ref": "#/components/schemas/AiConfigsLink"
},
"description": "The location and content type of related resources",
"example": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"type": "object"
},
"_id": {
"description": "The member's ID",
"example": "569f183514f4432160000007",
"type": "string"
},
"firstName": {
"description": "The member's first name",
"example": "Ariel",
"type": "string"
},
"lastName": {
"description": "The member's last name",
"example": "Flores",
"type": "string"
},
"role": {
"description": "The member's base role. If the member has no additional roles, this role will be in effect.",
"example": "admin",
"type": "string"
},
"email": {
"description": "The member's email address",
"example": "ariel@acme.com",
"type": "string"
}
},
"required": [
"_id",
"_links",
"email",
"role"
],
"type": "object"
},
"AiConfigsFilter": {
"example": {
"op": "op",
"negate": false,
"values": [
"JP"
],
"contextKind": "user",
"attribute": "country",
"type": "contextAttribute"
},
"properties": {
"type": {
"description": "Filter type. One of [contextAttribute, eventProperty, group]",
"enum": [
"group",
"contextAttribute",
"eventProperty"
],
"example": "contextAttribute",
"type": "string"
},
"attribute": {
"description": "If not a group node, the context attribute name or event property name to filter on",
"example": "country",
"type": "string"
},
"op": {
"type": "string"
},
"values": {
"description": "The context attribute / event property values or group member nodes",
"example": [
"JP"
],
"items": {},
"type": "array"
},
"contextKind": {
"description": "For context attribute filters, the context kind.",
"example": "user",
"type": "string"
},
"negate": {
"description": "If set, then take the inverse of the operator. 'in' becomes 'not in'.",
"example": false,
"type": "boolean"
}
},
"required": [
"negate",
"op",
"type",
"values"
],
"type": "object"
},
"AiConfigsMetricEventDefaultRep": {
"example": {
"disabled": true,
"value": 0
},
"properties": {
"disabled": {
"description": "Whether to disable defaulting missing unit events when calculating results. Defaults to false",
"type": "boolean"
},
"value": {
"description": "The default value applied to missing unit events. Set to 0 when disabled is false. No other values are currently supported.",
"example": 0,
"type": "number"
}
},
"type": "object"
},
"AiConfigsMetricDataSourceRefRep": {
"example": {
"_name": "_name",
"_integrationKey": "_integrationKey",
"key": "key",
"environmentKey": "environmentKey"
},
"properties": {
"key": {
"type": "string"
},
"environmentKey": {
"type": "string"
},
"_name": {
"type": "string"
},
"_integrationKey": {
"type": "string"
}
},
"required": [
"key"
],
"type": "object"
},
"AiConfigsExperimentEnvironmentSettingRep": {
"example": {
"startDate": 7,
"stopDate": 1,
"enabledPeriods": [
{
"startDate": 4,
"stopDate": 5
},
{
"startDate": 4,
"stopDate": 5
}
]
},
"properties": {
"startDate": {
"format": "int64",
"type": "integer"
},
"stopDate": {
"format": "int64",
"type": "integer"
},
"enabledPeriods": {
"items": {
"$ref": "#/components/schemas/AiConfigsExperimentEnabledPeriodRep"
},
"type": "array"
}
},
"type": "object"
},
"AiConfigsExperimentEnabledPeriodRep": {
"example": {
"startDate": 4,
"stopDate": 5
},
"properties": {
"startDate": {
"format": "int64",
"type": "integer"
},
"stopDate": {
"format": "int64",
"type": "integer"
}
},
"type": "object"
},
"AIConfig__maintainer": {
"example": {
"kind": "kind"
},
"oneOf": [
{
"$ref": "#/components/schemas/MaintainerMember"
},
{
"$ref": "#/components/schemas/AiConfigsMaintainerTeam"
}
],
"properties": {
"kind": {
"type": "string"
}
},
"required": [
"kind"
]
},
"AIConfigTargetingVariation_value": {
"oneOf": [
{
"$ref": "#/components/schemas/AIConfigTargetingVariationBoolean"
},
{
"$ref": "#/components/schemas/AIConfigTargetingVariationJSON"
},
{
"$ref": "#/components/schemas/AIConfigTargetingVariationNumber"
},
{
"$ref": "#/components/schemas/AIConfigTargetingVariationString"
}
]
},
"AgentGraph__maintainer": {
"example": {
"kind": "kind"
},
"oneOf": [
{
"$ref": "#/components/schemas/MaintainerMember"
},
{
"$ref": "#/components/schemas/AiConfigsMaintainerTeam"
}
],
"properties": {
"kind": {
"type": "string"
}
},
"type": "object"
},
"AnnouncementResponse": {
"description": "Announcement response",
"example": {
"severity": "info",
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"_links": {
"parent": {
"href": "href",
"type": "type"
}
},
"startTime": 1731439812,
"_id": "1234567890",
"isDismissible": true,
"endTime": 1731439880,
"title": "System Maintenance Notice",
"message": "**Important Update:**\n\nPlease be aware of the upcoming maintenance scheduled for *October 31st, 2024*. The system will be unavailable from **12:00 AM** to **4:00 AM**.",
"_status": "active"
},
"properties": {
"_id": {
"description": "The ID of the announcement",
"example": "1234567890",
"type": "string"
},
"isDismissible": {
"description": "true if the announcement is dismissible",
"example": true,
"type": "boolean"
},
"title": {
"description": "The title of the announcement",
"example": "System Maintenance Notice",
"type": "string"
},
"message": {
"description": "The message of the announcement",
"example": "**Important Update:**\n\nPlease be aware of the upcoming maintenance scheduled for *October 31st, 2024*. The system will be unavailable from **12:00 AM** to **4:00 AM**.",
"type": "string"
},
"startTime": {
"description": "The start time of the announcement. This is a Unix timestamp in milliseconds.",
"example": 1731439812,
"format": "int64",
"type": "integer"
},
"endTime": {
"description": "The end time of the announcement. This is a Unix timestamp in milliseconds.",
"example": 1731439880,
"format": "int64",
"type": "integer"
},
"severity": {
"description": "The severity of the announcement",
"enum": [
"info",
"warning",
"critical"
],
"type": "string",
"x-enumNames": [
"Informational",
"Warning",
"Critical"
]
},
"_status": {
"description": "The status of the announcement",
"enum": [
"active",
"inactive",
"scheduled"
],
"type": "string",
"x-enumNames": [
"Active",
"Inactive",
"Scheduled"
]
},
"_access": {
"$ref": "#/components/schemas/AnnouncementAccessRep"
},
"_links": {
"$ref": "#/components/schemas/AnnouncementResponse__links"
}
},
"required": [
"_id",
"_links",
"_status",
"isDismissible",
"message",
"severity",
"startTime",
"title"
],
"type": "object"
},
"CreateAnnouncementBody": {
"description": "Create announcement request body",
"example": {
"severity": "warning",
"startTime": 1731439812,
"isDismissible": true,
"endTime": 1731439880,
"title": "System Maintenance Notice",
"message": "**Important Update:**\n\nPlease be aware of the upcoming maintenance scheduled for *October 31st, 2024*. The system will be unavailable from **12:00 AM** to **4:00 AM**."
},
"properties": {
"isDismissible": {
"description": "true if the announcement is dismissible",
"example": true,
"type": "boolean"
},
"title": {
"description": "The title of the announcement",
"example": "System Maintenance Notice",
"type": "string"
},
"message": {
"description": "The message of the announcement",
"example": "**Important Update:**\n\nPlease be aware of the upcoming maintenance scheduled for *October 31st, 2024*. The system will be unavailable from **12:00 AM** to **4:00 AM**.",
"type": "string"
},
"startTime": {
"description": "The start time of the announcement. This is a Unix timestamp in milliseconds.",
"example": 1731439812,
"format": "int64",
"type": "integer"
},
"endTime": {
"description": "The end time of the announcement. This is a Unix timestamp in milliseconds.",
"example": 1731439880,
"format": "int64",
"type": "integer"
},
"severity": {
"description": "The severity of the announcement",
"enum": [
"info",
"warning",
"critical"
],
"example": "warning",
"type": "string",
"x-enumNames": [
"Informational",
"Warning",
"Critical"
]
}
},
"required": [
"isDismissible",
"message",
"severity",
"startTime",
"title"
],
"type": "object"
},
"AnnouncementLink": {
"example": {
"href": "href",
"type": "type"
},
"properties": {
"href": {
"type": "string"
},
"type": {
"type": "string"
}
},
"type": "object"
},
"AnnouncementPaginatedLinks": {
"example": {
"next": {
"href": "href",
"type": "type"
},
"last": {
"href": "href",
"type": "type"
},
"prev": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
},
"first": {
"href": "href",
"type": "type"
}
},
"properties": {
"first": {
"$ref": "#/components/schemas/AnnouncementLink"
},
"last": {
"$ref": "#/components/schemas/AnnouncementLink"
},
"next": {
"$ref": "#/components/schemas/AnnouncementLink"
},
"prev": {
"$ref": "#/components/schemas/AnnouncementLink"
},
"self": {
"$ref": "#/components/schemas/AnnouncementLink"
}
},
"required": [
"self"
],
"type": "object"
},
"AnnouncementJSONPatch": {
"items": {
"$ref": "#/components/schemas/AnnouncementPatchOperation"
},
"type": "array"
},
"AnnouncementPatchOperation": {
"example": {
"op": "replace",
"path": "/exampleField",
"value": "new example value"
},
"properties": {
"op": {
"description": "The type of operation to perform",
"example": "replace",
"type": "string"
},
"path": {
"description": "A JSON Pointer string specifying the part of the document to operate on",
"example": "/exampleField",
"type": "string"
},
"value": {
"description": "A JSON value used in \"add\", \"replace\", and \"test\" operations",
"example": "new example value"
}
},
"required": [
"op",
"path"
],
"type": "object"
},
"AnnouncementAccessRep": {
"allOf": [
{
"$ref": "#/components/schemas/AnnouncementAccess"
}
],
"example": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"x-go-type": "reps.AccessRep"
},
"AnnouncementAccess": {
"properties": {
"denied": {
"items": {
"$ref": "#/components/schemas/AnnouncementAccessDenied"
},
"type": "array"
},
"allowed": {
"items": {
"$ref": "#/components/schemas/AnnouncementAccessAllowedRep"
},
"type": "array"
}
},
"required": [
"allowed",
"denied"
],
"type": "object"
},
"AnnouncementAccessDenied": {
"example": {
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
"properties": {
"action": {
"type": "string"
},
"reason": {
"$ref": "#/components/schemas/AnnouncementAccessDeniedReason"
}
},
"required": [
"action",
"reason"
],
"type": "object"
},
"AnnouncementAccessDeniedReason": {
"example": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"properties": {
"resources": {
"description": "Resource specifier strings",
"example": [
"proj/*:env/*;qa_*:/flag/*"
],
"items": {
"type": "string"
},
"type": "array"
},
"notResources": {
"description": "Targeted resources are the resources NOT in this list. The resources and notActions fields must be empty to use this field.",
"items": {
"type": "string"
},
"type": "array"
},
"actions": {
"description": "Actions to perform on a resource",
"example": [
"*"
],
"items": {
"$ref": "#/components/schemas/ActionSpecifier"
},
"type": "array"
},
"notActions": {
"description": "Targeted actions are the actions NOT in this list. The actions and notResources fields must be empty to use this field.",
"items": {
"$ref": "#/components/schemas/ActionSpecifier"
},
"type": "array"
},
"effect": {
"description": "Whether this statement should allow or deny actions on the resources.",
"enum": [
"allow",
"deny"
],
"example": "allow",
"type": "string"
},
"role_name": {
"type": "string"
}
},
"required": [
"effect"
],
"type": "object"
},
"AnnouncementAccessAllowedRep": {
"example": {
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
"properties": {
"action": {
"type": "string"
},
"reason": {
"$ref": "#/components/schemas/AnnouncementAccessAllowedReason"
}
},
"required": [
"action",
"reason"
],
"type": "object"
},
"AnnouncementAccessAllowedReason": {
"example": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"properties": {
"resources": {
"description": "Resource specifier strings",
"example": [
"proj/*:env/*;qa_*:/flag/*"
],
"items": {
"type": "string"
},
"type": "array"
},
"notResources": {
"description": "Targeted resources are the resources NOT in this list. The resources and notActions fields must be empty to use this field.",
"items": {
"type": "string"
},
"type": "array"
},
"actions": {
"description": "Actions to perform on a resource",
"example": [
"*"
],
"items": {
"$ref": "#/components/schemas/ActionSpecifier"
},
"type": "array"
},
"notActions": {
"description": "Targeted actions are the actions NOT in this list. The actions and notResources fields must be empty to use this field.",
"items": {
"$ref": "#/components/schemas/ActionSpecifier"
},
"type": "array"
},
"effect": {
"description": "Whether this statement should allow or deny actions on the resources.",
"enum": [
"allow",
"deny"
],
"example": "allow",
"type": "string"
},
"role_name": {
"type": "string"
}
},
"required": [
"effect"
],
"type": "object"
},
"getAnnouncementsPublic_200_response": {
"example": {
"_links": {
"next": {
"href": "href",
"type": "type"
},
"last": {
"href": "href",
"type": "type"
},
"prev": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
},
"first": {
"href": "href",
"type": "type"
}
},
"items": [
{
"severity": "info",
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"_links": {
"parent": {
"href": "href",
"type": "type"
}
},
"startTime": 1731439812,
"_id": "1234567890",
"isDismissible": true,
"endTime": 1731439880,
"title": "System Maintenance Notice",
"message": "**Important Update:**\n\nPlease be aware of the upcoming maintenance scheduled for *October 31st, 2024*. The system will be unavailable from **12:00 AM** to **4:00 AM**.",
"_status": "active"
},
{
"severity": "info",
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"_links": {
"parent": {
"href": "href",
"type": "type"
}
},
"startTime": 1731439812,
"_id": "1234567890",
"isDismissible": true,
"endTime": 1731439880,
"title": "System Maintenance Notice",
"message": "**Important Update:**\n\nPlease be aware of the upcoming maintenance scheduled for *October 31st, 2024*. The system will be unavailable from **12:00 AM** to **4:00 AM**.",
"_status": "active"
}
]
},
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/AnnouncementResponse"
},
"type": "array"
},
"_links": {
"$ref": "#/components/schemas/AnnouncementPaginatedLinks"
}
},
"required": [
"_links",
"items"
],
"type": "object"
},
"AnnouncementResponse__links": {
"example": {
"parent": {
"href": "href",
"type": "type"
}
},
"properties": {
"parent": {
"$ref": "#/components/schemas/AnnouncementLink"
}
},
"required": [
"parent"
],
"type": "object"
},
"ApprovalRequestSetting": {
"description": "Configuration that controls how changes to a resource are gated by approvals.",
"properties": {
"required": {
"description": "If approvals are required for this environment",
"example": true,
"type": "boolean"
},
"bypassApprovalsForPendingChanges": {
"description": "Whether to skip approvals for pending changes",
"example": false,
"type": "boolean"
},
"minNumApprovals": {
"description": "Sets the amount of approvals required before a member can apply a change. The minimum is one and the maximum is five.\n",
"example": 1,
"format": "int",
"type": "integer"
},
"canReviewOwnRequest": {
"description": "Allow someone who makes an approval request to apply their own change",
"example": false,
"type": "boolean"
},
"canApplyDeclinedChanges": {
"description": "Allow applying the change as long as at least one person has approved",
"example": true,
"type": "boolean"
},
"autoApplyApprovedChanges": {
"description": "Automatically apply changes that have been approved by all reviewers. This field is only applicable for approval services other than LaunchDarkly.\n",
"example": true,
"nullable": true,
"type": "boolean"
},
"serviceKind": {
"description": "Which service to use for managing approvals",
"example": "launchdarkly",
"type": "string"
},
"serviceConfig": {
"additionalProperties": true,
"description": "Arbitrary service-specific configuration",
"example": {},
"type": "object"
},
"requiredApprovalTags": {
"description": "Require approval only on flags with the provided tags. Otherwise all flags will require approval.\n",
"example": [
"require-approval"
],
"items": {
"type": "string"
},
"type": "array"
},
"serviceKindConfigurationId": {
"description": "Optional integration configuration ID of a custom approval integration. This is an Enterprise-only feature.\n",
"example": "1ef45a85-218f-4428-a8b2-a97e5f56c258",
"nullable": true,
"type": "string"
}
},
"required": [
"bypassApprovalsForPendingChanges",
"canApplyDeclinedChanges",
"canReviewOwnRequest",
"minNumApprovals",
"required",
"requiredApprovalTags",
"serviceConfig",
"serviceKind"
],
"type": "object"
},
"ApprovalRequestSettingWithEnvs": {
"allOf": [
{
"properties": {
"environments": {
"additionalProperties": {
"$ref": "#/components/schemas/ApprovalRequestSetting"
},
"description": "Environment-specific overrides.",
"type": "object"
},
"_default": {
"$ref": "#/components/schemas/ApprovalRequestSetting"
},
"_strict": {
"$ref": "#/components/schemas/ApprovalRequestSetting"
}
},
"type": "object"
}
]
},
"ApprovalRequestSettings": {
"additionalProperties": {
"$ref": "#/components/schemas/ApprovalRequestSettingWithEnvs"
},
"type": "object"
},
"ApprovalRequestSettingsPatch": {
"example": {
"resourceKind": "resourceKind",
"serviceKind": "launchdarkly",
"canReviewOwnRequest": false,
"requiredApprovalTags": [
"require-approval"
],
"serviceConfig": {},
"serviceKindConfigurationId": "1ef45a85-218f-4428-a8b2-a97e5f56c258",
"bypassApprovalsForPendingChanges": false,
"canApplyDeclinedChanges": true,
"minNumApprovals": 1,
"autoApplyApprovedChanges": true,
"required": true,
"environmentKey": "environmentKey"
},
"properties": {
"autoApplyApprovedChanges": {
"description": "Automatically apply changes that have been approved by all reviewers. This field is only applicable for approval services other than LaunchDarkly.\n",
"example": true,
"nullable": true,
"type": "boolean"
},
"bypassApprovalsForPendingChanges": {
"description": "Whether to skip approvals for pending changes",
"example": false,
"type": "boolean"
},
"canApplyDeclinedChanges": {
"description": "Allow applying the change as long as at least one person has approved",
"example": true,
"type": "boolean"
},
"canReviewOwnRequest": {
"description": "Allow someone who makes an approval request to apply their own change",
"example": false,
"type": "boolean"
},
"environmentKey": {
"type": "string"
},
"minNumApprovals": {
"description": "Sets the amount of approvals required before a member can apply a change. The minimum is one and the maximum is five.\n",
"example": 1,
"format": "int",
"type": "integer"
},
"required": {
"description": "If approvals are required for this environment",
"example": true,
"type": "boolean"
},
"requiredApprovalTags": {
"description": "Require approval only on flags with the provided tags. Otherwise all flags will require approval.\n",
"example": [
"require-approval"
],
"items": {
"type": "string"
},
"type": "array"
},
"resourceKind": {
"type": "string"
},
"serviceConfig": {
"additionalProperties": true,
"description": "Arbitrary service-specific configuration",
"example": {},
"type": "object"
},
"serviceKind": {
"description": "Which service to use for managing approvals",
"example": "launchdarkly",
"type": "string"
},
"serviceKindConfigurationId": {
"description": "Optional integration configuration ID of a custom approval integration. This is an Enterprise-only feature.\n",
"example": "1ef45a85-218f-4428-a8b2-a97e5f56c258",
"nullable": true,
"type": "string"
}
},
"required": [
"environmentKey",
"resourceKind"
],
"type": "object"
},
"Views": {
"example": {
"_links": {
"next": {
"href": "href",
"type": "type"
},
"last": {
"href": "href",
"type": "type"
},
"prev": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
},
"first": {
"href": "href",
"type": "type"
}
},
"totalCount": 0,
"items": [
{
"metricsExpanded": {
"totalCount": 6,
"items": [
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
}
]
},
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"maintainer": {
"kind": "kind",
"maintainerMember": {
"firstName": "firstName",
"lastName": "lastName",
"role": "role",
"id": "id",
"email": "email"
},
"id": "id",
"maintainerTeam": {
"name": "name",
"id": "id",
"key": "key"
}
},
"metricsSummary": {
"count": 2
},
"createdAt": 6,
"archived": false,
"projectKey": "projectKey",
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"generateSdkKeys": true,
"flagsSummary": {
"count": 2,
"linkedFlags": {
"totalCount": 7,
"items": [
{
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
},
{
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
}
]
}
},
"id": "id",
"aiConfigsSummary": {
"count": 4
},
"key": "key",
"updatedAt": 1,
"resourcesExpanded": {
"totalCount": 7,
"items": {
"flags": {
"totalCount": 5,
"items": [
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
}
]
},
"aiConfigs": {
"totalCount": 3,
"items": [
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
},
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
]
},
"metrics": {
"totalCount": 3,
"items": [
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
}
]
},
"segments": {
"totalCount": 6,
"items": [
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
}
]
}
}
},
"resourceSummary": {
"flagCount": 7,
"metricCount": 1,
"totalCount": 6,
"segmentCount": 1,
"aiConfigCount": 1
},
"version": 0,
"tags": [
"tags",
"tags"
],
"accountId": "accountId",
"archivedAt": 5,
"deletedAt": 5,
"deleted": false,
"name": "name",
"segmentsSummary": {
"linkedSegments": {
"totalCount": 3,
"items": [
{
"environmentId": "environmentId",
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
},
{
"environmentId": "environmentId",
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
}
]
},
"count": 9
},
"aiConfigsExpanded": {
"totalCount": 6,
"items": [
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
},
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
]
},
"segmentsExpanded": {
"totalCount": 8,
"items": [
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
}
]
},
"projectId": "projectId",
"flagsExpanded": {
"totalCount": 4,
"items": [
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
}
]
}
},
{
"metricsExpanded": {
"totalCount": 6,
"items": [
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
}
]
},
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"maintainer": {
"kind": "kind",
"maintainerMember": {
"firstName": "firstName",
"lastName": "lastName",
"role": "role",
"id": "id",
"email": "email"
},
"id": "id",
"maintainerTeam": {
"name": "name",
"id": "id",
"key": "key"
}
},
"metricsSummary": {
"count": 2
},
"createdAt": 6,
"archived": false,
"projectKey": "projectKey",
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"generateSdkKeys": true,
"flagsSummary": {
"count": 2,
"linkedFlags": {
"totalCount": 7,
"items": [
{
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
},
{
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
}
]
}
},
"id": "id",
"aiConfigsSummary": {
"count": 4
},
"key": "key",
"updatedAt": 1,
"resourcesExpanded": {
"totalCount": 7,
"items": {
"flags": {
"totalCount": 5,
"items": [
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
}
]
},
"aiConfigs": {
"totalCount": 3,
"items": [
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
},
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
]
},
"metrics": {
"totalCount": 3,
"items": [
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
}
]
},
"segments": {
"totalCount": 6,
"items": [
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
}
]
}
}
},
"resourceSummary": {
"flagCount": 7,
"metricCount": 1,
"totalCount": 6,
"segmentCount": 1,
"aiConfigCount": 1
},
"version": 0,
"tags": [
"tags",
"tags"
],
"accountId": "accountId",
"archivedAt": 5,
"deletedAt": 5,
"deleted": false,
"name": "name",
"segmentsSummary": {
"linkedSegments": {
"totalCount": 3,
"items": [
{
"environmentId": "environmentId",
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
},
{
"environmentId": "environmentId",
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
}
]
},
"count": 9
},
"aiConfigsExpanded": {
"totalCount": 6,
"items": [
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
},
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
]
},
"segmentsExpanded": {
"totalCount": 8,
"items": [
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
}
]
},
"projectId": "projectId",
"flagsExpanded": {
"totalCount": 4,
"items": [
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
}
]
}
}
]
},
"properties": {
"_links": {
"$ref": "#/components/schemas/ViewsPaginatedLinks"
},
"items": {
"items": {
"$ref": "#/components/schemas/View"
},
"type": "array"
},
"totalCount": {
"type": "integer"
}
},
"required": [
"items",
"totalCount"
],
"type": "object"
},
"View": {
"example": {
"metricsExpanded": {
"totalCount": 6,
"items": [
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
}
]
},
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"maintainer": {
"kind": "kind",
"maintainerMember": {
"firstName": "firstName",
"lastName": "lastName",
"role": "role",
"id": "id",
"email": "email"
},
"id": "id",
"maintainerTeam": {
"name": "name",
"id": "id",
"key": "key"
}
},
"metricsSummary": {
"count": 2
},
"createdAt": 6,
"archived": false,
"projectKey": "projectKey",
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"generateSdkKeys": true,
"flagsSummary": {
"count": 2,
"linkedFlags": {
"totalCount": 7,
"items": [
{
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
},
{
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
}
]
}
},
"id": "id",
"aiConfigsSummary": {
"count": 4
},
"key": "key",
"updatedAt": 1,
"resourcesExpanded": {
"totalCount": 7,
"items": {
"flags": {
"totalCount": 5,
"items": [
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
}
]
},
"aiConfigs": {
"totalCount": 3,
"items": [
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
},
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
]
},
"metrics": {
"totalCount": 3,
"items": [
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
}
]
},
"segments": {
"totalCount": 6,
"items": [
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
}
]
}
}
},
"resourceSummary": {
"flagCount": 7,
"metricCount": 1,
"totalCount": 6,
"segmentCount": 1,
"aiConfigCount": 1
},
"version": 0,
"tags": [
"tags",
"tags"
],
"accountId": "accountId",
"archivedAt": 5,
"deletedAt": 5,
"deleted": false,
"name": "name",
"segmentsSummary": {
"linkedSegments": {
"totalCount": 3,
"items": [
{
"environmentId": "environmentId",
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
},
{
"environmentId": "environmentId",
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
}
]
},
"count": 9
},
"aiConfigsExpanded": {
"totalCount": 6,
"items": [
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
},
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
]
},
"segmentsExpanded": {
"totalCount": 8,
"items": [
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
}
]
},
"projectId": "projectId",
"flagsExpanded": {
"totalCount": 4,
"items": [
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
}
]
}
},
"properties": {
"_access": {
"$ref": "#/components/schemas/ViewsAccessRep"
},
"_links": {
"$ref": "#/components/schemas/ParentAndSelfLinks"
},
"id": {
"description": "Unique ID of this view",
"format": "string",
"type": "string"
},
"accountId": {
"description": "ID of the account that owns this view",
"type": "string"
},
"projectId": {
"description": "ID of the project this view belongs to",
"type": "string"
},
"projectKey": {
"description": "Key of the project this view belongs to",
"type": "string"
},
"key": {
"description": "Unique key for the view within the account/project",
"type": "string"
},
"name": {
"description": "Human-readable name for the view",
"type": "string"
},
"description": {
"description": "Optional detailed description of the view",
"type": "string"
},
"generateSdkKeys": {
"description": "Whether to generate SDK keys for this view. Defaults to false.",
"type": "boolean"
},
"version": {
"description": "Version number for tracking changes",
"type": "integer"
},
"tags": {
"description": "Tags associated with this view",
"items": {
"type": "string"
},
"type": "array"
},
"createdAt": {
"format": "int64",
"type": "integer"
},
"updatedAt": {
"format": "int64",
"type": "integer"
},
"archived": {
"default": false,
"description": "Whether this view is archived",
"type": "boolean"
},
"archivedAt": {
"format": "int64",
"type": "integer"
},
"deletedAt": {
"format": "int64",
"type": "integer"
},
"deleted": {
"default": false,
"description": "Whether this view is deleted",
"type": "boolean"
},
"maintainer": {
"$ref": "#/components/schemas/Maintainer"
},
"flagsSummary": {
"$ref": "#/components/schemas/FlagsSummary"
},
"segmentsSummary": {
"$ref": "#/components/schemas/SegmentsSummary"
},
"metricsSummary": {
"$ref": "#/components/schemas/MetricsSummary"
},
"aiConfigsSummary": {
"$ref": "#/components/schemas/AIConfigsSummary"
},
"resourceSummary": {
"$ref": "#/components/schemas/ResourceSummary"
},
"flagsExpanded": {
"$ref": "#/components/schemas/ExpandedLinkedFlags"
},
"segmentsExpanded": {
"$ref": "#/components/schemas/ExpandedLinkedSegments"
},
"metricsExpanded": {
"$ref": "#/components/schemas/ExpandedLinkedMetrics"
},
"aiConfigsExpanded": {
"$ref": "#/components/schemas/ExpandedLinkedAIConfigs"
},
"resourcesExpanded": {
"$ref": "#/components/schemas/ExpandedLinkedResources"
}
},
"required": [
"accountId",
"archived",
"createdAt",
"deleted",
"description",
"generateSdkKeys",
"id",
"key",
"name",
"projectId",
"projectKey",
"tags",
"updatedAt",
"version"
],
"type": "object"
},
"Maintainer": {
"example": {
"kind": "kind",
"maintainerMember": {
"firstName": "firstName",
"lastName": "lastName",
"role": "role",
"id": "id",
"email": "email"
},
"id": "id",
"maintainerTeam": {
"name": "name",
"id": "id",
"key": "key"
}
},
"properties": {
"id": {
"type": "string"
},
"kind": {
"type": "string"
},
"maintainerMember": {
"$ref": "#/components/schemas/ViewsMaintainerMember"
},
"maintainerTeam": {
"$ref": "#/components/schemas/ViewsMaintainerTeam"
}
},
"required": [
"id",
"kind"
],
"type": "object"
},
"ViewsMaintainerMember": {
"example": {
"firstName": "firstName",
"lastName": "lastName",
"role": "role",
"id": "id",
"email": "email"
},
"properties": {
"id": {
"type": "string"
},
"email": {
"type": "string"
},
"role": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
}
},
"required": [
"email",
"id",
"role"
],
"type": "object"
},
"ViewsMaintainerTeam": {
"example": {
"name": "name",
"id": "id",
"key": "key"
},
"properties": {
"id": {
"type": "string"
},
"key": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"id",
"key",
"name"
],
"type": "object"
},
"ViewPost": {
"example": {
"maintainerId": "maintainerId",
"name": "name",
"generateSdkKeys": false,
"maintainerTeamKey": "maintainerTeamKey",
"description": "",
"key": "key",
"tags": [
"tags",
"tags"
]
},
"properties": {
"key": {
"description": "Unique key for the view within the account/project",
"type": "string"
},
"name": {
"description": "Human-readable name for the view",
"type": "string"
},
"description": {
"default": "",
"description": "Optional detailed description of the view",
"type": "string"
},
"generateSdkKeys": {
"default": false,
"description": "Whether to generate SDK keys for this view",
"type": "boolean"
},
"maintainerId": {
"description": "Member ID of the maintainer for this view. Only one of `maintainerId` or `maintainerTeamKey` can be specified.",
"type": "string"
},
"maintainerTeamKey": {
"description": "Key of the maintainer team for this view. Only one of `maintainerId` or `maintainerTeamKey` can be specified.",
"type": "string"
},
"tags": {
"description": "Tags associated with this view",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"key",
"name"
],
"type": "object"
},
"ViewPatch": {
"example": {
"archived": true,
"maintainerId": "maintainerId",
"name": "name",
"generateSdkKeys": true,
"maintainerTeamKey": "maintainerTeamKey",
"description": "description",
"tags": [
"tags",
"tags"
]
},
"properties": {
"name": {
"description": "Human-readable name for the view",
"type": "string"
},
"description": {
"description": "Optional detailed description of the view",
"type": "string"
},
"generateSdkKeys": {
"description": "Whether to generate SDK keys for this view",
"type": "boolean"
},
"maintainerId": {
"description": "Member ID of the maintainer for this view. Only one of `maintainerId` or `maintainerTeamKey` can be specified.",
"type": "string"
},
"maintainerTeamKey": {
"description": "Key of the maintainer team for this view. Only one of `maintainerId` or `maintainerTeamKey` can be specified.",
"type": "string"
},
"tags": {
"description": "Tags associated with this view",
"items": {
"type": "string"
},
"type": "array"
},
"archived": {
"description": "Whether or not the view is archived",
"type": "boolean"
}
},
"type": "object"
},
"ViewLinkedResources": {
"example": {
"_links": {
"next": {
"href": "href",
"type": "type"
},
"last": {
"href": "href",
"type": "type"
},
"prev": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
},
"first": {
"href": "href",
"type": "type"
}
},
"totalCount": 5,
"items": [
{
"environmentId": "environmentId",
"resourceKey": "resourceKey",
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"resourceDetails": {
"view": {
"metricsExpanded": {
"totalCount": 6,
"items": [
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
}
]
},
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"maintainer": {
"kind": "kind",
"maintainerMember": {
"firstName": "firstName",
"lastName": "lastName",
"role": "role",
"id": "id",
"email": "email"
},
"id": "id",
"maintainerTeam": {
"name": "name",
"id": "id",
"key": "key"
}
},
"metricsSummary": {
"count": 2
},
"createdAt": 6,
"archived": false,
"projectKey": "projectKey",
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"generateSdkKeys": true,
"flagsSummary": {
"count": 2,
"linkedFlags": {
"totalCount": 7,
"items": [
{
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
},
{
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
}
]
}
},
"id": "id",
"aiConfigsSummary": {
"count": 4
},
"key": "key",
"updatedAt": 1,
"resourcesExpanded": {
"totalCount": 7,
"items": {
"flags": {
"totalCount": 5,
"items": [
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
}
]
},
"aiConfigs": {
"totalCount": 3,
"items": [
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
},
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
]
},
"metrics": {
"totalCount": 3,
"items": [
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
}
]
},
"segments": {
"totalCount": 6,
"items": [
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
}
]
}
}
},
"resourceSummary": {
"flagCount": 7,
"metricCount": 1,
"totalCount": 6,
"segmentCount": 1,
"aiConfigCount": 1
},
"version": 0,
"tags": [
"tags",
"tags"
],
"accountId": "accountId",
"archivedAt": 5,
"deletedAt": 5,
"deleted": false,
"name": "name",
"segmentsSummary": {
"linkedSegments": {
"totalCount": 3,
"items": [
{
"environmentId": "environmentId",
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
},
{
"environmentId": "environmentId",
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
}
]
},
"count": 9
},
"aiConfigsExpanded": {
"totalCount": 6,
"items": [
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
},
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
]
},
"segmentsExpanded": {
"totalCount": 8,
"items": [
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
}
]
},
"projectId": "projectId",
"flagsExpanded": {
"totalCount": 4,
"items": [
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
}
]
}
},
"flag": {
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
"metric": {
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
"segment": {
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
"aiConfig": {
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
},
"linkedAt": 1,
"environmentKey": "environmentKey",
"resourceType": "flag"
},
{
"environmentId": "environmentId",
"resourceKey": "resourceKey",
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"resourceDetails": {
"view": {
"metricsExpanded": {
"totalCount": 6,
"items": [
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
}
]
},
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"maintainer": {
"kind": "kind",
"maintainerMember": {
"firstName": "firstName",
"lastName": "lastName",
"role": "role",
"id": "id",
"email": "email"
},
"id": "id",
"maintainerTeam": {
"name": "name",
"id": "id",
"key": "key"
}
},
"metricsSummary": {
"count": 2
},
"createdAt": 6,
"archived": false,
"projectKey": "projectKey",
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"generateSdkKeys": true,
"flagsSummary": {
"count": 2,
"linkedFlags": {
"totalCount": 7,
"items": [
{
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
},
{
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
}
]
}
},
"id": "id",
"aiConfigsSummary": {
"count": 4
},
"key": "key",
"updatedAt": 1,
"resourcesExpanded": {
"totalCount": 7,
"items": {
"flags": {
"totalCount": 5,
"items": [
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
}
]
},
"aiConfigs": {
"totalCount": 3,
"items": [
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
},
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
]
},
"metrics": {
"totalCount": 3,
"items": [
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
}
]
},
"segments": {
"totalCount": 6,
"items": [
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
}
]
}
}
},
"resourceSummary": {
"flagCount": 7,
"metricCount": 1,
"totalCount": 6,
"segmentCount": 1,
"aiConfigCount": 1
},
"version": 0,
"tags": [
"tags",
"tags"
],
"accountId": "accountId",
"archivedAt": 5,
"deletedAt": 5,
"deleted": false,
"name": "name",
"segmentsSummary": {
"linkedSegments": {
"totalCount": 3,
"items": [
{
"environmentId": "environmentId",
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
},
{
"environmentId": "environmentId",
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
}
]
},
"count": 9
},
"aiConfigsExpanded": {
"totalCount": 6,
"items": [
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
},
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
]
},
"segmentsExpanded": {
"totalCount": 8,
"items": [
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
}
]
},
"projectId": "projectId",
"flagsExpanded": {
"totalCount": 4,
"items": [
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
}
]
}
},
"flag": {
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
"metric": {
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
"segment": {
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
"aiConfig": {
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
},
"linkedAt": 1,
"environmentKey": "environmentKey",
"resourceType": "flag"
}
]
},
"properties": {
"_links": {
"$ref": "#/components/schemas/ViewsPaginatedLinks"
},
"items": {
"items": {
"$ref": "#/components/schemas/ViewLinkedResource"
},
"type": "array"
},
"totalCount": {
"type": "integer"
}
},
"required": [
"items",
"totalCount"
],
"type": "object"
},
"ViewLinkedResource": {
"example": {
"environmentId": "environmentId",
"resourceKey": "resourceKey",
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"resourceDetails": {
"view": {
"metricsExpanded": {
"totalCount": 6,
"items": [
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
}
]
},
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"maintainer": {
"kind": "kind",
"maintainerMember": {
"firstName": "firstName",
"lastName": "lastName",
"role": "role",
"id": "id",
"email": "email"
},
"id": "id",
"maintainerTeam": {
"name": "name",
"id": "id",
"key": "key"
}
},
"metricsSummary": {
"count": 2
},
"createdAt": 6,
"archived": false,
"projectKey": "projectKey",
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"generateSdkKeys": true,
"flagsSummary": {
"count": 2,
"linkedFlags": {
"totalCount": 7,
"items": [
{
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
},
{
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
}
]
}
},
"id": "id",
"aiConfigsSummary": {
"count": 4
},
"key": "key",
"updatedAt": 1,
"resourcesExpanded": {
"totalCount": 7,
"items": {
"flags": {
"totalCount": 5,
"items": [
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
}
]
},
"aiConfigs": {
"totalCount": 3,
"items": [
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
},
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
]
},
"metrics": {
"totalCount": 3,
"items": [
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
}
]
},
"segments": {
"totalCount": 6,
"items": [
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
}
]
}
}
},
"resourceSummary": {
"flagCount": 7,
"metricCount": 1,
"totalCount": 6,
"segmentCount": 1,
"aiConfigCount": 1
},
"version": 0,
"tags": [
"tags",
"tags"
],
"accountId": "accountId",
"archivedAt": 5,
"deletedAt": 5,
"deleted": false,
"name": "name",
"segmentsSummary": {
"linkedSegments": {
"totalCount": 3,
"items": [
{
"environmentId": "environmentId",
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
},
{
"environmentId": "environmentId",
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
}
]
},
"count": 9
},
"aiConfigsExpanded": {
"totalCount": 6,
"items": [
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
},
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
]
},
"segmentsExpanded": {
"totalCount": 8,
"items": [
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
}
]
},
"projectId": "projectId",
"flagsExpanded": {
"totalCount": 4,
"items": [
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
}
]
}
},
"flag": {
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
"metric": {
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
"segment": {
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
"aiConfig": {
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
},
"linkedAt": 1,
"environmentKey": "environmentKey",
"resourceType": "flag"
},
"properties": {
"_links": {
"$ref": "#/components/schemas/ParentAndSelfLinks"
},
"resourceKey": {
"description": "Key of the resource (flag, segment, AI config or metric)",
"type": "string"
},
"environmentId": {
"description": "Environment ID of the resource (only present for segments)",
"type": "string"
},
"environmentKey": {
"description": "Environment Key of the resource (only present for segments)",
"type": "string"
},
"resourceType": {
"enum": [
"flag",
"segment",
"metric",
"aiConfig"
],
"type": "string"
},
"linkedAt": {
"format": "int64",
"type": "integer"
},
"resourceDetails": {
"$ref": "#/components/schemas/ViewLinkedResourceDetails"
}
},
"required": [
"_links",
"linkedAt",
"resourceKey",
"resourceType"
],
"type": "object"
},
"ViewLinkRequest": {
"oneOf": [
{
"$ref": "#/components/schemas/ViewLinkRequestKeys"
},
{
"$ref": "#/components/schemas/ViewLinkRequestSegmentIdentifiers"
},
{
"$ref": "#/components/schemas/ViewLinkRequestFilter"
}
],
"type": "object"
},
"FailedResourceLink": {
"example": {
"environmentId": "environmentId",
"resourceKey": "resourceKey",
"errorMessage": "errorMessage",
"resourceType": "flag"
},
"properties": {
"resourceKey": {
"description": "The key of the resource that failed to link.",
"type": "string"
},
"environmentId": {
"description": "Environment ID of the resource (only present for segments)",
"type": "string"
},
"resourceType": {
"description": "The type of the resource that failed to link.",
"enum": [
"flag",
"segment",
"metric",
"aiConfig"
],
"type": "string"
},
"errorMessage": {
"description": "The reason why linking this resource failed.",
"type": "string"
}
},
"required": [
"errorMessage",
"resourceKey",
"resourceType"
],
"type": "object"
},
"LinkResourceSuccessResponse": {
"example": {
"linkedResources": {
"_links": {
"next": {
"href": "href",
"type": "type"
},
"last": {
"href": "href",
"type": "type"
},
"prev": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
},
"first": {
"href": "href",
"type": "type"
}
},
"totalCount": 5,
"items": [
{
"environmentId": "environmentId",
"resourceKey": "resourceKey",
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"resourceDetails": {
"view": {
"metricsExpanded": {
"totalCount": 6,
"items": [
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
}
]
},
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"maintainer": {
"kind": "kind",
"maintainerMember": {
"firstName": "firstName",
"lastName": "lastName",
"role": "role",
"id": "id",
"email": "email"
},
"id": "id",
"maintainerTeam": {
"name": "name",
"id": "id",
"key": "key"
}
},
"metricsSummary": {
"count": 2
},
"createdAt": 6,
"archived": false,
"projectKey": "projectKey",
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"generateSdkKeys": true,
"flagsSummary": {
"count": 2,
"linkedFlags": {
"totalCount": 7,
"items": [
{
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
},
{
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
}
]
}
},
"id": "id",
"aiConfigsSummary": {
"count": 4
},
"key": "key",
"updatedAt": 1,
"resourcesExpanded": {
"totalCount": 7,
"items": {
"flags": {
"totalCount": 5,
"items": [
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
}
]
},
"aiConfigs": {
"totalCount": 3,
"items": [
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
},
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
]
},
"metrics": {
"totalCount": 3,
"items": [
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
}
]
},
"segments": {
"totalCount": 6,
"items": [
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
}
]
}
}
},
"resourceSummary": {
"flagCount": 7,
"metricCount": 1,
"totalCount": 6,
"segmentCount": 1,
"aiConfigCount": 1
},
"version": 0,
"tags": [
"tags",
"tags"
],
"accountId": "accountId",
"archivedAt": 5,
"deletedAt": 5,
"deleted": false,
"name": "name",
"segmentsSummary": {
"linkedSegments": {
"totalCount": 3,
"items": [
{
"environmentId": "environmentId",
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
},
{
"environmentId": "environmentId",
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
}
]
},
"count": 9
},
"aiConfigsExpanded": {
"totalCount": 6,
"items": [
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
},
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
]
},
"segmentsExpanded": {
"totalCount": 8,
"items": [
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
}
]
},
"projectId": "projectId",
"flagsExpanded": {
"totalCount": 4,
"items": [
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
}
]
}
},
"flag": {
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
"metric": {
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
"segment": {
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
"aiConfig": {
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
},
"linkedAt": 1,
"environmentKey": "environmentKey",
"resourceType": "flag"
},
{
"environmentId": "environmentId",
"resourceKey": "resourceKey",
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"resourceDetails": {
"view": {
"metricsExpanded": {
"totalCount": 6,
"items": [
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
}
]
},
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"maintainer": {
"kind": "kind",
"maintainerMember": {
"firstName": "firstName",
"lastName": "lastName",
"role": "role",
"id": "id",
"email": "email"
},
"id": "id",
"maintainerTeam": {
"name": "name",
"id": "id",
"key": "key"
}
},
"metricsSummary": {
"count": 2
},
"createdAt": 6,
"archived": false,
"projectKey": "projectKey",
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"generateSdkKeys": true,
"flagsSummary": {
"count": 2,
"linkedFlags": {
"totalCount": 7,
"items": [
{
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
},
{
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
}
]
}
},
"id": "id",
"aiConfigsSummary": {
"count": 4
},
"key": "key",
"updatedAt": 1,
"resourcesExpanded": {
"totalCount": 7,
"items": {
"flags": {
"totalCount": 5,
"items": [
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
}
]
},
"aiConfigs": {
"totalCount": 3,
"items": [
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
},
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
]
},
"metrics": {
"totalCount": 3,
"items": [
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
}
]
},
"segments": {
"totalCount": 6,
"items": [
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
}
]
}
}
},
"resourceSummary": {
"flagCount": 7,
"metricCount": 1,
"totalCount": 6,
"segmentCount": 1,
"aiConfigCount": 1
},
"version": 0,
"tags": [
"tags",
"tags"
],
"accountId": "accountId",
"archivedAt": 5,
"deletedAt": 5,
"deleted": false,
"name": "name",
"segmentsSummary": {
"linkedSegments": {
"totalCount": 3,
"items": [
{
"environmentId": "environmentId",
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
},
{
"environmentId": "environmentId",
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
}
]
},
"count": 9
},
"aiConfigsExpanded": {
"totalCount": 6,
"items": [
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
},
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
]
},
"segmentsExpanded": {
"totalCount": 8,
"items": [
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
}
]
},
"projectId": "projectId",
"flagsExpanded": {
"totalCount": 4,
"items": [
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
}
]
}
},
"flag": {
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
"metric": {
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
"segment": {
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
"aiConfig": {
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
},
"linkedAt": 1,
"environmentKey": "environmentKey",
"resourceType": "flag"
}
]
},
"failedResources": [
{
"environmentId": "environmentId",
"resourceKey": "resourceKey",
"errorMessage": "errorMessage",
"resourceType": "flag"
},
{
"environmentId": "environmentId",
"resourceKey": "resourceKey",
"errorMessage": "errorMessage",
"resourceType": "flag"
}
],
"successCount": 0,
"failureCount": 6
},
"properties": {
"successCount": {
"description": "The number of resources successfully linked.",
"type": "integer"
},
"failureCount": {
"description": "The number of resources that failed to link.",
"type": "integer"
},
"linkedResources": {
"$ref": "#/components/schemas/ViewLinkedResources"
},
"failedResources": {
"description": "Details of resources that failed to link.",
"items": {
"$ref": "#/components/schemas/FailedResourceLink"
},
"type": "array"
}
},
"required": [
"failureCount",
"successCount"
],
"type": "object"
},
"UnlinkResourceSuccessResponse": {
"example": {
"failedResources": [
{
"environmentId": "environmentId",
"resourceKey": "resourceKey",
"errorMessage": "errorMessage",
"resourceType": "flag"
},
{
"environmentId": "environmentId",
"resourceKey": "resourceKey",
"errorMessage": "errorMessage",
"resourceType": "flag"
}
],
"successCount": 0,
"failureCount": 6
},
"properties": {
"successCount": {
"description": "The number of resources successfully unlinked.",
"type": "integer"
},
"failureCount": {
"description": "The number of resources that failed to unlink.",
"type": "integer"
},
"failedResources": {
"description": "Details of resources that failed to unlink.",
"items": {
"$ref": "#/components/schemas/FailedResourceLink"
},
"type": "array"
}
},
"required": [
"failureCount",
"successCount"
],
"type": "object"
},
"ViewsSelfLink": {
"example": {
"self": {
"href": "href",
"type": "type"
}
},
"properties": {
"self": {
"$ref": "#/components/schemas/CoreLink"
}
},
"required": [
"self"
],
"type": "object"
},
"ViewsPaginatedLinks": {
"example": {
"next": {
"href": "href",
"type": "type"
},
"last": {
"href": "href",
"type": "type"
},
"prev": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
},
"first": {
"href": "href",
"type": "type"
}
},
"properties": {
"first": {
"$ref": "#/components/schemas/ViewsLink"
},
"last": {
"$ref": "#/components/schemas/ViewsLink"
},
"next": {
"$ref": "#/components/schemas/ViewsLink"
},
"prev": {
"$ref": "#/components/schemas/ViewsLink"
},
"self": {
"$ref": "#/components/schemas/ViewsLink"
}
},
"required": [
"self"
],
"type": "object"
},
"FlagsSummary": {
"example": {
"count": 2,
"linkedFlags": {
"totalCount": 7,
"items": [
{
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
},
{
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
}
]
}
},
"properties": {
"count": {
"type": "integer"
},
"linkedFlags": {
"$ref": "#/components/schemas/ExpandedDirectlyLinkedFlags"
}
},
"required": [
"count"
],
"type": "object"
},
"ResourceSummary": {
"example": {
"flagCount": 7,
"metricCount": 1,
"totalCount": 6,
"segmentCount": 1,
"aiConfigCount": 1
},
"properties": {
"flagCount": {
"type": "integer"
},
"segmentCount": {
"type": "integer"
},
"metricCount": {
"type": "integer"
},
"aiConfigCount": {
"type": "integer"
},
"totalCount": {
"type": "integer"
}
},
"required": [
"flagCount",
"totalCount"
],
"type": "object"
},
"SegmentsSummary": {
"example": {
"linkedSegments": {
"totalCount": 3,
"items": [
{
"environmentId": "environmentId",
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
},
{
"environmentId": "environmentId",
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
}
]
},
"count": 9
},
"properties": {
"count": {
"type": "integer"
},
"linkedSegments": {
"$ref": "#/components/schemas/ExpandedDirectlyLinkedSegments"
}
},
"required": [
"count"
],
"type": "object"
},
"AIConfigsSummary": {
"example": {
"count": 4
},
"properties": {
"count": {
"type": "integer"
}
},
"required": [
"count"
],
"type": "object"
},
"MetricsSummary": {
"example": {
"count": 2
},
"properties": {
"count": {
"type": "integer"
}
},
"required": [
"count"
],
"type": "object"
},
"ExpandedDirectlyLinkedFlags": {
"example": {
"totalCount": 7,
"items": [
{
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
},
{
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
}
]
},
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/ExpandedDirectlyLinkedFlag"
},
"type": "array"
},
"totalCount": {
"type": "integer"
}
},
"required": [
"items",
"totalCount"
],
"type": "object"
},
"ExpandedDirectlyLinkedSegments": {
"example": {
"totalCount": 3,
"items": [
{
"environmentId": "environmentId",
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
},
{
"environmentId": "environmentId",
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
}
]
},
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/ExpandedDirectlyLinkedSegment"
},
"type": "array"
},
"totalCount": {
"type": "integer"
}
},
"required": [
"items",
"totalCount"
],
"type": "object"
},
"ExpandedLinkedFlags": {
"description": "Details on linked flags for a view - requires passing the 'allFlags' expand field",
"example": {
"totalCount": 4,
"items": [
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
}
]
},
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/ExpandedFlag"
},
"type": "array"
},
"totalCount": {
"type": "integer"
}
},
"required": [
"items",
"totalCount"
],
"type": "object"
},
"ExpandedLinkedSegments": {
"description": "Details on linked segments for a view - requires passing the 'allSegments' expand field",
"example": {
"totalCount": 8,
"items": [
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
}
]
},
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/ExpandedSegment"
},
"type": "array"
},
"totalCount": {
"type": "integer"
}
},
"required": [
"items",
"totalCount"
],
"type": "object"
},
"ExpandedLinkedAIConfigs": {
"example": {
"totalCount": 6,
"items": [
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
},
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
]
},
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/ExpandedAIConfig"
},
"type": "array"
},
"totalCount": {
"type": "integer"
}
},
"required": [
"items",
"totalCount"
],
"type": "object"
},
"ExpandedLinkedMetrics": {
"example": {
"totalCount": 6,
"items": [
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
}
]
},
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/ExpandedMetric"
},
"type": "array"
},
"totalCount": {
"type": "integer"
}
},
"required": [
"items",
"totalCount"
],
"type": "object"
},
"ExpandedLinkedResources": {
"description": "Details on linked resources for a view - requires passing the 'allResources' expand field",
"example": {
"totalCount": 7,
"items": {
"flags": {
"totalCount": 5,
"items": [
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
}
]
},
"aiConfigs": {
"totalCount": 3,
"items": [
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
},
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
]
},
"metrics": {
"totalCount": 3,
"items": [
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
}
]
},
"segments": {
"totalCount": 6,
"items": [
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
}
]
}
}
},
"properties": {
"items": {
"$ref": "#/components/schemas/ExpandedLinkedResourcesItems"
},
"totalCount": {
"type": "integer"
}
},
"required": [
"items",
"totalCount"
],
"type": "object"
},
"ExpandedDirectlyLinkedFlag": {
"example": {
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
},
"properties": {
"key": {
"type": "string"
},
"name": {
"type": "string"
},
"links": {
"$ref": "#/components/schemas/ViewsSelfLink"
}
},
"required": [
"key",
"links",
"name"
],
"type": "object"
},
"ExpandedDirectlyLinkedSegment": {
"example": {
"environmentId": "environmentId",
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
},
"properties": {
"key": {
"type": "string"
},
"name": {
"type": "string"
},
"environmentId": {
"type": "string"
},
"links": {
"$ref": "#/components/schemas/ViewsSelfLink"
}
},
"required": [
"environmentId",
"key",
"links",
"name"
],
"type": "object"
},
"ExpandedFlag": {
"description": "Flag representation for Views API - contains only fields actually used by the Views service",
"example": {
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
"properties": {
"key": {
"description": "A unique key used to reference the flag",
"type": "string"
},
"name": {
"description": "A human-friendly name for the flag",
"type": "string"
},
"description": {
"description": "Description of the flag",
"type": "string"
},
"creationDate": {
"description": "Creation date in milliseconds",
"format": "int64",
"type": "integer"
},
"_version": {
"description": "Version of the flag",
"type": "integer"
},
"archived": {
"description": "Whether the flag is archived",
"type": "boolean"
},
"tags": {
"description": "Tags for the flag",
"items": {
"type": "string"
},
"type": "array"
},
"temporary": {
"description": "Whether the flag is temporary",
"type": "boolean"
},
"includeInSnippet": {
"description": "Whether to include in snippet",
"type": "boolean"
},
"maintainer": {
"$ref": "#/components/schemas/ExpandedFlagMaintainer"
},
"_links": {
"$ref": "#/components/schemas/ParentAndSelfLinks"
}
},
"required": [
"key",
"name"
],
"type": "object"
},
"ExpandedFlagMaintainer": {
"example": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"properties": {
"key": {
"description": "The ID of the maintainer member, or the key of the maintainer team",
"type": "string"
},
"kind": {
"description": "The type of the maintainer",
"enum": [
"member",
"team"
],
"type": "string"
},
"_member": {
"$ref": "#/components/schemas/ViewsMemberSummary"
},
"_team": {
"$ref": "#/components/schemas/ViewsMemberTeamSummaryRep"
}
},
"required": [
"key",
"kind"
],
"type": "object",
"x-go-type": "reps2.MaintainerRep",
"x-go-type-import": {
"path": "github.com/launchdarkly/gonfalon/internal/reps2",
"name": "reps2"
}
},
"ExpandedAIConfig": {
"description": "AI Config representation for Views API - contains only fields actually used by the Views service",
"example": {
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
},
"properties": {
"key": {
"description": "A unique key used to reference the AI config",
"type": "string"
},
"name": {
"description": "A human-friendly name for the AI config",
"type": "string"
},
"tags": {
"description": "Tags for the AI config",
"items": {
"type": "string"
},
"type": "array"
},
"description": {
"description": "Description of the AI config",
"type": "string"
},
"version": {
"description": "Version of the AI config",
"type": "integer"
},
"createdAt": {
"description": "Creation date in milliseconds",
"format": "int64",
"type": "integer"
},
"updatedAt": {
"description": "Last modification date in milliseconds",
"format": "int64",
"type": "integer"
},
"flagKey": {
"description": "Key of the flag that this AI config is attached to",
"type": "string"
},
"_links": {
"$ref": "#/components/schemas/ParentAndSelfLinks"
}
},
"type": "object",
"x-go-type": "domain.ExternalAIConfigRep",
"x-go-type-import": {
"path": "github.com/launchdarkly/gonfalon/internal/ai/ai_configs/domain",
"name": "domain"
}
},
"ExpandedSegment": {
"description": "Segment representation for Views API - contains only fields actually used by the Views service",
"example": {
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
"properties": {
"key": {
"description": "A unique key used to reference the segment",
"type": "string"
},
"name": {
"description": "A human-friendly name for the segment",
"type": "string"
},
"environmentId": {
"description": "Environment ID of the segment",
"type": "string"
},
"environmentKey": {
"description": "Environment key of the segment",
"type": "string"
},
"description": {
"description": "Description of the segment",
"type": "string"
},
"creationDate": {
"description": "Creation date in milliseconds",
"format": "int64",
"type": "integer"
},
"lastModifiedDate": {
"description": "Last modification date in milliseconds",
"format": "int64",
"type": "integer"
},
"deleted": {
"description": "Whether the segment is deleted",
"type": "boolean"
},
"tags": {
"description": "Tags for the segment",
"items": {
"type": "string"
},
"type": "array"
},
"unbounded": {
"description": "Whether the segment is unbounded",
"type": "boolean"
},
"version": {
"description": "Version of the segment",
"type": "integer"
},
"generation": {
"description": "Generation of the segment",
"type": "integer"
},
"_links": {
"$ref": "#/components/schemas/ParentAndSelfLinks"
}
},
"required": [
"key",
"name"
],
"type": "object"
},
"ExpandedMetric": {
"description": "Metric representation for Views API - contains only fields actually used by the Views service",
"example": {
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
"properties": {
"key": {
"description": "A unique key used to reference the metric",
"type": "string"
},
"name": {
"description": "A human-friendly name for the metric",
"type": "string"
},
"creationDate": {
"description": "Creation date in milliseconds",
"format": "int64",
"type": "integer"
},
"lastModified": {
"description": "Last modification date in milliseconds",
"format": "int64",
"type": "integer"
},
"isActive": {
"description": "Whether the metric is active",
"type": "boolean"
},
"eventKey": {
"description": "Event key for the metric",
"type": "string"
},
"_id": {
"description": "ID of the metric",
"type": "string"
},
"_versionId": {
"description": "Version ID of the metric",
"type": "string"
},
"kind": {
"description": "Kind of the Metric",
"type": "string"
},
"category": {
"description": "Category of the Metric",
"type": "string"
},
"description": {
"description": "Description of the Metric",
"type": "string"
},
"isNumeric": {
"type": "boolean"
},
"lastSeen": {
"description": "Last seen date in milliseconds",
"format": "int64",
"type": "integer"
},
"_links": {
"$ref": "#/components/schemas/ParentAndSelfLinks"
}
},
"type": "object",
"x-go-type": "metrics.MetricExpandable",
"x-go-type-import": {
"path": "github.com/launchdarkly/gonfalon/internal/shared/metrics",
"name": "metrics"
}
},
"ViewsAccessRep": {
"allOf": [
{
"$ref": "#/components/schemas/ViewsAccess"
}
],
"example": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"x-go-type": "reps.AccessRep"
},
"ViewsLink": {
"example": {
"href": "href",
"type": "type"
},
"properties": {
"href": {
"type": "string"
},
"type": {
"type": "string"
}
},
"type": "object"
},
"ViewsMemberSummary": {
"example": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"properties": {
"_links": {
"additionalProperties": {
"$ref": "#/components/schemas/ViewsLink"
},
"description": "The location and content type of related resources",
"example": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"type": "object"
},
"_id": {
"description": "The member's ID",
"example": "569f183514f4432160000007",
"type": "string"
},
"firstName": {
"description": "The member's first name",
"example": "Ariel",
"type": "string"
},
"lastName": {
"description": "The member's last name",
"example": "Flores",
"type": "string"
},
"role": {
"description": "The member's base role. If the member has no additional roles, this role will be in effect.",
"example": "admin",
"type": "string"
},
"email": {
"description": "The member's email address",
"example": "ariel@acme.com",
"type": "string"
}
},
"required": [
"_id",
"_links",
"email",
"role"
],
"type": "object"
},
"ViewsMemberTeamSummaryRep": {
"example": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"properties": {
"customRoleKeys": {
"description": "A list of keys of the custom roles this team has access to",
"example": [
"access-to-test-projects"
],
"items": {
"type": "string"
},
"type": "array"
},
"key": {
"description": "The team key",
"example": "team-key-123abc",
"type": "string"
},
"_links": {
"additionalProperties": {
"$ref": "#/components/schemas/ViewsLink"
},
"type": "object"
},
"name": {
"description": "The team name",
"example": "QA Team",
"type": "string"
}
},
"required": [
"customRoleKeys",
"key",
"name"
],
"type": "object"
},
"ViewsAccess": {
"properties": {
"denied": {
"items": {
"$ref": "#/components/schemas/ViewsAccessDenied"
},
"type": "array"
},
"allowed": {
"items": {
"$ref": "#/components/schemas/ViewsAccessAllowedRep"
},
"type": "array"
}
},
"required": [
"allowed",
"denied"
],
"type": "object"
},
"ViewsAccessDenied": {
"example": {
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
"properties": {
"action": {
"type": "string"
},
"reason": {
"$ref": "#/components/schemas/ViewsAccessDeniedReason"
}
},
"required": [
"action",
"reason"
],
"type": "object"
},
"ViewsAccessDeniedReason": {
"example": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"properties": {
"resources": {
"description": "Resource specifier strings",
"example": [
"proj/*:env/*;qa_*:/flag/*"
],
"items": {
"type": "string"
},
"type": "array"
},
"notResources": {
"description": "Targeted resources are the resources NOT in this list. The resources and notActions fields must be empty to use this field.",
"items": {
"type": "string"
},
"type": "array"
},
"actions": {
"description": "Actions to perform on a resource",
"example": [
"*"
],
"items": {
"$ref": "#/components/schemas/ActionSpecifier"
},
"type": "array"
},
"notActions": {
"description": "Targeted actions are the actions NOT in this list. The actions and notResources fields must be empty to use this field.",
"items": {
"$ref": "#/components/schemas/ActionSpecifier"
},
"type": "array"
},
"effect": {
"description": "Whether this statement should allow or deny actions on the resources.",
"enum": [
"allow",
"deny"
],
"example": "allow",
"type": "string"
},
"role_name": {
"type": "string"
}
},
"required": [
"effect"
],
"type": "object"
},
"ViewsAccessAllowedRep": {
"example": {
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
"properties": {
"action": {
"type": "string"
},
"reason": {
"$ref": "#/components/schemas/ViewsAccessAllowedReason"
}
},
"required": [
"action",
"reason"
],
"type": "object"
},
"ViewsAccessAllowedReason": {
"example": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"properties": {
"resources": {
"description": "Resource specifier strings",
"example": [
"proj/*:env/*;qa_*:/flag/*"
],
"items": {
"type": "string"
},
"type": "array"
},
"notResources": {
"description": "Targeted resources are the resources NOT in this list. The resources and notActions fields must be empty to use this field.",
"items": {
"type": "string"
},
"type": "array"
},
"actions": {
"description": "Actions to perform on a resource",
"example": [
"*"
],
"items": {
"$ref": "#/components/schemas/ActionSpecifier"
},
"type": "array"
},
"notActions": {
"description": "Targeted actions are the actions NOT in this list. The actions and notResources fields must be empty to use this field.",
"items": {
"$ref": "#/components/schemas/ActionSpecifier"
},
"type": "array"
},
"effect": {
"description": "Whether this statement should allow or deny actions on the resources.",
"enum": [
"allow",
"deny"
],
"example": "allow",
"type": "string"
},
"role_name": {
"type": "string"
}
},
"required": [
"effect"
],
"type": "object"
},
"ViewLinkedResourceDetails": {
"example": {
"view": {
"metricsExpanded": {
"totalCount": 6,
"items": [
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
}
]
},
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"maintainer": {
"kind": "kind",
"maintainerMember": {
"firstName": "firstName",
"lastName": "lastName",
"role": "role",
"id": "id",
"email": "email"
},
"id": "id",
"maintainerTeam": {
"name": "name",
"id": "id",
"key": "key"
}
},
"metricsSummary": {
"count": 2
},
"createdAt": 6,
"archived": false,
"projectKey": "projectKey",
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"generateSdkKeys": true,
"flagsSummary": {
"count": 2,
"linkedFlags": {
"totalCount": 7,
"items": [
{
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
},
{
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
}
]
}
},
"id": "id",
"aiConfigsSummary": {
"count": 4
},
"key": "key",
"updatedAt": 1,
"resourcesExpanded": {
"totalCount": 7,
"items": {
"flags": {
"totalCount": 5,
"items": [
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
}
]
},
"aiConfigs": {
"totalCount": 3,
"items": [
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
},
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
]
},
"metrics": {
"totalCount": 3,
"items": [
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
}
]
},
"segments": {
"totalCount": 6,
"items": [
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
}
]
}
}
},
"resourceSummary": {
"flagCount": 7,
"metricCount": 1,
"totalCount": 6,
"segmentCount": 1,
"aiConfigCount": 1
},
"version": 0,
"tags": [
"tags",
"tags"
],
"accountId": "accountId",
"archivedAt": 5,
"deletedAt": 5,
"deleted": false,
"name": "name",
"segmentsSummary": {
"linkedSegments": {
"totalCount": 3,
"items": [
{
"environmentId": "environmentId",
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
},
{
"environmentId": "environmentId",
"name": "name",
"links": {
"self": {
"href": "href",
"type": "type"
}
},
"key": "key"
}
]
},
"count": 9
},
"aiConfigsExpanded": {
"totalCount": 6,
"items": [
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
},
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
]
},
"segmentsExpanded": {
"totalCount": 8,
"items": [
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
}
]
},
"projectId": "projectId",
"flagsExpanded": {
"totalCount": 4,
"items": [
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
}
]
}
},
"flag": {
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
"metric": {
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
"segment": {
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
"aiConfig": {
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
},
"properties": {
"view": {
"$ref": "#/components/schemas/View"
},
"flag": {
"$ref": "#/components/schemas/ExpandedFlag"
},
"segment": {
"$ref": "#/components/schemas/ExpandedSegment"
},
"aiConfig": {
"$ref": "#/components/schemas/ExpandedAIConfig"
},
"metric": {
"$ref": "#/components/schemas/ExpandedMetric"
}
},
"title": "ViewLinkedResourceDetails",
"type": "object"
},
"ViewLinkRequestKeys": {
"additionalProperties": false,
"example": {
"filter": "maintainerId:507f1f77bcf86cd799439011,tags:backend+beta",
"keys": [
"flag-1",
"flag-2"
],
"comment": ""
},
"properties": {
"keys": {
"description": "Keys of the resources (flags, segments, AI configs) to link/unlink",
"example": [
"flag-1",
"flag-2"
],
"items": {
"type": "string"
},
"type": "array"
},
"filter": {
"description": "Optional filter string to determine which resources should be linked. Resources only need to match either the filter or explicitly-listed keys to be linked (union).\nUses the same syntax as list endpoints: flags use comma-separated field:value filters, segments use queryfilter syntax.\n\nSupported filters by resource type:\n- flags: query, tags, maintainerId, maintainerTeamKey, type, status, state, staleState, sdkAvailability, targeting, hasExperiment, hasDataExport, evaluated, creationDate, contextKindTargeted, contextKindsEvaluated, filterEnv, segmentTargeted, codeReferences.min, codeReferences.max, excludeSettings, releasePipeline, applicationEvaluated, purpose, guardedRollout, view, key, name, archived, followerId\n- segments (queryfilter): query, tags, keys, excludedKeys, unbounded, external, view, type\nSome filters are only available when the corresponding feature is enabled on your account.\n",
"example": "maintainerId:507f1f77bcf86cd799439011,tags:backend+beta",
"type": "string"
},
"comment": {
"default": "",
"description": "Optional comment for the link/unlink operation",
"type": "string"
}
},
"required": [
"keys"
],
"title": "ViewLinkRequestKeys",
"type": "object"
},
"ViewLinkRequestSegmentIdentifier": {
"properties": {
"environmentId": {
"type": "string"
},
"segmentKey": {
"type": "string"
}
},
"required": [
"environmentId",
"segmentKey"
],
"title": "ViewLinkRequestSegmentIdentifier",
"type": "object"
},
"ViewLinkRequestSegmentIdentifiers": {
"additionalProperties": false,
"properties": {
"segmentIdentifiers": {
"description": "Identifiers of the segments to link/unlink (environmentId and segmentKey)",
"items": {
"$ref": "#/components/schemas/ViewLinkRequestSegmentIdentifier"
},
"type": "array"
},
"filter": {
"description": "Optional filter string to determine which resources should be linked. Resources only need to match either the filter or explicitly-listed keys to be linked (union).\nUses the same queryfilter syntax as the segments list endpoint.\n\nSupported filters for segments: query, tags, keys, excludedKeys, unbounded, external, view, type\n",
"example": "tags anyOf [\"backend\"]",
"type": "string"
},
"environmentId": {
"description": "Required when using filter for segment resources. Specifies which environment to query for segments matching the filter.\nIgnored when only using explicit segmentIdentifiers (since each identifier contains its own environmentId).\n",
"type": "string"
},
"comment": {
"default": "",
"description": "Optional comment for the link/unlink operation",
"type": "string"
}
},
"required": [
"segmentIdentifiers"
],
"title": "ViewLinkRequestSegmentIdentifiers",
"type": "object"
},
"ViewLinkRequestFilter": {
"additionalProperties": false,
"properties": {
"filter": {
"description": "Filter string to match resources for linking. Uses the same syntax as list endpoints: flags use comma-separated field:value filters, segments use queryfilter syntax.\n\nSupported filters by resource type:\n- flags: query, tags, maintainerId, maintainerTeamKey, type, status, state, staleState, sdkAvailability, targeting, hasExperiment, hasDataExport, evaluated, creationDate, contextKindTargeted, contextKindsEvaluated, filterEnv, segmentTargeted, codeReferences.min, codeReferences.max, excludeSettings, releasePipeline, applicationEvaluated, purpose, guardedRollout, view, key, name, archived, followerId\n- segments (queryfilter): query, tags, keys, excludedKeys, unbounded, external, view, type\nSome filters are only available when the corresponding feature is enabled on your account.\n",
"example": "maintainerId:507f1f77bcf86cd799439011,tags:backend+beta",
"type": "string"
},
"environmentId": {
"description": "Required when using filter for segment resources. Specifies which environment to query for segments matching the filter.\nIgnored for flag resources (flags are global across environments).\n",
"type": "string"
},
"comment": {
"default": "",
"description": "Optional comment for the link/unlink operation",
"type": "string"
}
},
"required": [
"filter"
],
"title": "ViewLinkRequestFilter",
"type": "object"
},
"ExpandedLinkedResourcesFlags": {
"example": {
"totalCount": 5,
"items": [
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
}
]
},
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/ExpandedFlag"
},
"type": "array"
},
"totalCount": {
"type": "integer"
}
},
"required": [
"items",
"totalCount"
],
"title": "ExpandedLinkedResourcesFlags",
"type": "object"
},
"ExpandedLinkedResourcesSegments": {
"example": {
"totalCount": 6,
"items": [
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
}
]
},
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/ExpandedSegment"
},
"type": "array"
},
"totalCount": {
"type": "integer"
}
},
"required": [
"items",
"totalCount"
],
"title": "ExpandedLinkedResourcesSegments",
"type": "object"
},
"ExpandedLinkedResourcesAIConfigs": {
"example": {
"totalCount": 3,
"items": [
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
},
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
]
},
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/ExpandedAIConfig"
},
"type": "array"
},
"totalCount": {
"type": "integer"
}
},
"required": [
"items",
"totalCount"
],
"title": "ExpandedLinkedResourcesAIConfigs",
"type": "object"
},
"ExpandedLinkedResourcesMetrics": {
"example": {
"totalCount": 3,
"items": [
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
}
]
},
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/ExpandedMetric"
},
"type": "array"
},
"totalCount": {
"type": "integer"
}
},
"required": [
"items",
"totalCount"
],
"title": "ExpandedLinkedResourcesMetrics",
"type": "object"
},
"ExpandedLinkedResourcesItems": {
"example": {
"flags": {
"totalCount": 5,
"items": [
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
},
{
"archived": true,
"temporary": true,
"includeInSnippet": true,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"creationDate": 7,
"_version": 1,
"key": "key",
"maintainer": {
"kind": "member",
"_member": {
"firstName": "Ariel",
"lastName": "Flores",
"role": "admin",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"email": "ariel@acme.com"
},
"_team": {
"_links": {
"key": {
"href": "href",
"type": "type"
}
},
"name": "QA Team",
"customRoleKeys": [
"access-to-test-projects"
],
"key": "team-key-123abc"
},
"key": "key"
},
"tags": [
"tags",
"tags"
]
}
]
},
"aiConfigs": {
"totalCount": 3,
"items": [
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
},
{
"createdAt": 2,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"name": "name",
"description": "description",
"version": 1,
"key": "key",
"flagKey": "flagKey",
"tags": [
"tags",
"tags"
],
"updatedAt": 6
}
]
},
"metrics": {
"totalCount": 3,
"items": [
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
},
{
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"kind": "kind",
"description": "description",
"creationDate": 9,
"isActive": true,
"lastSeen": 3,
"eventKey": "eventKey",
"_versionId": "_versionId",
"isNumeric": true,
"name": "name",
"lastModified": 6,
"_id": "_id",
"category": "category",
"key": "key"
}
]
},
"segments": {
"totalCount": 6,
"items": [
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
},
{
"generation": 6,
"lastModifiedDate": 9,
"_links": {
"parent": {
"href": "href",
"type": "type"
},
"self": {
"href": "href",
"type": "type"
}
},
"description": "description",
"creationDate": 5,
"version": 9,
"environmentKey": "environmentKey",
"tags": [
"tags",
"tags"
],
"environmentId": "environmentId",
"deleted": true,
"name": "name",
"unbounded": true,
"key": "key"
}
]
}
},
"properties": {
"flags": {
"$ref": "#/components/schemas/ExpandedLinkedResourcesFlags"
},
"segments": {
"$ref": "#/components/schemas/ExpandedLinkedResourcesSegments"
},
"aiConfigs": {
"$ref": "#/components/schemas/ExpandedLinkedResourcesAIConfigs"
},
"metrics": {
"$ref": "#/components/schemas/ExpandedLinkedResourcesMetrics"
}
},
"required": [
"flags"
],
"title": "ExpandedLinkedResourcesItems",
"type": "object"
},
"PostReleasePolicyRequest": {
"example": {
"releaseMethod": "guarded-release",
"scope": {
"environmentKeys": [
"production",
"staging"
],
"flagTagKeys": [
"frontend",
"backend"
],
"viewKeys": [
"feature-a",
"team-a"
]
},
"progressiveReleaseConfig": {
"rolloutContextKindKey": "user",
"stages": [
{
"allocation": 25000,
"durationMillis": 60000
},
{
"allocation": 25000,
"durationMillis": 60000
}
]
},
"name": "Production Release",
"guardedReleaseConfig": {
"metricKeys": [
"http-errors",
"latency"
],
"rolloutContextKindKey": "user",
"metricRegressionThreshold": 0.05,
"metricGroupKeys": [
"frontend-metrics",
"backend-metrics"
],
"minSampleSize": 100,
"stages": [
{
"allocation": 25000,
"durationMillis": 60000
},
{
"allocation": 25000,
"durationMillis": 60000
}
],
"rollbackOnRegression": true
},
"key": "production-release"
},
"properties": {
"scope": {
"$ref": "#/components/schemas/ReleasePolicyScope"
},
"releaseMethod": {
"$ref": "#/components/schemas/ReleaseMethod"
},
"guardedReleaseConfig": {
"$ref": "#/components/schemas/GuardedReleaseConfig"
},
"progressiveReleaseConfig": {
"$ref": "#/components/schemas/ProgressiveReleaseConfig"
},
"name": {
"description": "The name of the release policy",
"example": "Production Release",
"maxLength": 256,
"type": "string"
},
"key": {
"description": "The human-readable key of the release policy",
"example": "production-release",
"type": "string"
}
},
"required": [
"key",
"name",
"releaseMethod"
],
"type": "object"
},
"PutReleasePolicyRequest": {
"example": {
"releaseMethod": "guarded-release",
"scope": {
"environmentKeys": [
"production",
"staging"
],
"flagTagKeys": [
"frontend",
"backend"
],
"viewKeys": [
"feature-a",
"team-a"
]
},
"progressiveReleaseConfig": {
"rolloutContextKindKey": "user",
"stages": [
{
"allocation": 25000,
"durationMillis": 60000
},
{
"allocation": 25000,
"durationMillis": 60000
}
]
},
"name": "Production Release",
"guardedReleaseConfig": {
"metricKeys": [
"http-errors",
"latency"
],
"rolloutContextKindKey": "user",
"metricRegressionThreshold": 0.05,
"metricGroupKeys": [
"frontend-metrics",
"backend-metrics"
],
"minSampleSize": 100,
"stages": [
{
"allocation": 25000,
"durationMillis": 60000
},
{
"allocation": 25000,
"durationMillis": 60000
}
],
"rollbackOnRegression": true
}
},
"properties": {
"scope": {
"$ref": "#/components/schemas/ReleasePolicyScope"
},
"releaseMethod": {
"$ref": "#/components/schemas/ReleaseMethod"
},
"guardedReleaseConfig": {
"$ref": "#/components/schemas/GuardedReleaseConfig"
},
"progressiveReleaseConfig": {
"$ref": "#/components/schemas/ProgressiveReleaseConfig"
},
"name": {
"description": "The name of the release policy",
"example": "Production Release",
"maxLength": 256,
"type": "string"
}
},
"required": [
"name",
"releaseMethod"
],
"type": "object"
},
"ReleasePolicy": {
"example": {
"releaseMethod": "guarded-release",
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"scope": {
"environmentKeys": [
"production",
"staging"
],
"flagTagKeys": [
"frontend",
"backend"
],
"viewKeys": [
"feature-a",
"team-a"
]
},
"progressiveReleaseConfig": {
"rolloutContextKindKey": "user",
"stages": [
{
"allocation": 25000,
"durationMillis": 60000
},
{
"allocation": 25000,
"durationMillis": 60000
}
]
},
"name": "Production Release",
"rank": 1,
"_id": "550e8400-e29b-41d4-a716-446655440000",
"guardedReleaseConfig": {
"metricKeys": [
"http-errors",
"latency"
],
"rolloutContextKindKey": "user",
"metricRegressionThreshold": 0.05,
"metricGroupKeys": [
"frontend-metrics",
"backend-metrics"
],
"minSampleSize": 100,
"stages": [
{
"allocation": 25000,
"durationMillis": 60000
},
{
"allocation": 25000,
"durationMillis": 60000
}
],
"rollbackOnRegression": true
},
"key": "production-release"
},
"properties": {
"_access": {
"$ref": "#/components/schemas/ReleasePoliciesAccessRep"
},
"_id": {
"description": "The unique identifier of the release policy",
"example": "550e8400-e29b-41d4-a716-446655440000",
"type": "string"
},
"scope": {
"$ref": "#/components/schemas/ReleasePolicyScope"
},
"rank": {
"description": "The rank/priority of the release policy",
"example": 1,
"type": "integer"
},
"releaseMethod": {
"$ref": "#/components/schemas/ReleaseMethod"
},
"guardedReleaseConfig": {
"$ref": "#/components/schemas/GuardedReleaseConfig"
},
"progressiveReleaseConfig": {
"$ref": "#/components/schemas/ProgressiveReleaseConfig"
},
"name": {
"description": "The name of the release policy",
"example": "Production Release",
"maxLength": 256,
"type": "string"
},
"key": {
"description": "The human-readable key of the release policy",
"example": "production-release",
"type": "string"
}
},
"required": [
"_id",
"key",
"name",
"rank",
"releaseMethod"
],
"type": "object"
},
"ReleasePolicyScope": {
"example": {
"environmentKeys": [
"production",
"staging"
],
"flagTagKeys": [
"frontend",
"backend"
],
"viewKeys": [
"feature-a",
"team-a"
]
},
"properties": {
"environmentKeys": {
"description": "List of environment keys this policy applies to",
"example": [
"production",
"staging"
],
"items": {
"type": "string"
},
"type": "array"
},
"flagTagKeys": {
"description": "List of flag tag keys this policy applies to",
"example": [
"frontend",
"backend"
],
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"GuardedReleaseConfig": {
"description": "Configuration for guarded releases",
"example": {
"metricKeys": [
"http-errors",
"latency"
],
"rolloutContextKindKey": "user",
"metricRegressionThreshold": 0.05,
"metricGroupKeys": [
"frontend-metrics",
"backend-metrics"
],
"minSampleSize": 100,
"stages": [
{
"allocation": 25000,
"durationMillis": 60000
},
{
"allocation": 25000,
"durationMillis": 60000
}
],
"rollbackOnRegression": true
},
"properties": {
"rolloutContextKindKey": {
"description": "Context kind key to use as the randomization unit for the rollout",
"example": "user",
"type": "string"
},
"minSampleSize": {
"description": "The minimum number of samples required to make a decision",
"example": 100,
"type": "integer"
},
"rollbackOnRegression": {
"description": "Whether to roll back on regression",
"example": true,
"type": "boolean"
},
"metricKeys": {
"description": "List of metric keys",
"example": [
"http-errors",
"latency"
],
"items": {
"type": "string"
},
"type": "array"
},
"metricGroupKeys": {
"description": "List of metric group keys",
"example": [
"frontend-metrics",
"backend-metrics"
],
"items": {
"type": "string"
},
"type": "array"
},
"stages": {
"description": "List of stages",
"items": {
"$ref": "#/components/schemas/ReleasePolicyStage"
},
"type": "array"
}
},
"type": "object"
},
"ProgressiveReleaseConfig": {
"description": "Configuration for progressive releases",
"example": {
"rolloutContextKindKey": "user",
"stages": [
{
"allocation": 25000,
"durationMillis": 60000
},
{
"allocation": 25000,
"durationMillis": 60000
}
]
},
"properties": {
"rolloutContextKindKey": {
"description": "Context kind key to use as the randomization unit for the rollout",
"example": "user",
"type": "string"
},
"stages": {
"description": "List of stages",
"items": {
"$ref": "#/components/schemas/ReleasePolicyStage"
},
"type": "array"
}
},
"type": "object"
},
"ReleasePoliciesResponse": {
"example": {
"totalCount": 42,
"items": [
{
"releaseMethod": "guarded-release",
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"scope": {
"environmentKeys": [
"production",
"staging"
],
"flagTagKeys": [
"frontend",
"backend"
],
"viewKeys": [
"feature-a",
"team-a"
]
},
"progressiveReleaseConfig": {
"rolloutContextKindKey": "user",
"stages": [
{
"allocation": 25000,
"durationMillis": 60000
},
{
"allocation": 25000,
"durationMillis": 60000
}
]
},
"name": "Production Release",
"rank": 1,
"_id": "550e8400-e29b-41d4-a716-446655440000",
"guardedReleaseConfig": {
"metricKeys": [
"http-errors",
"latency"
],
"rolloutContextKindKey": "user",
"metricRegressionThreshold": 0.05,
"metricGroupKeys": [
"frontend-metrics",
"backend-metrics"
],
"minSampleSize": 100,
"stages": [
{
"allocation": 25000,
"durationMillis": 60000
},
{
"allocation": 25000,
"durationMillis": 60000
}
],
"rollbackOnRegression": true
},
"key": "production-release"
},
{
"releaseMethod": "guarded-release",
"_access": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"scope": {
"environmentKeys": [
"production",
"staging"
],
"flagTagKeys": [
"frontend",
"backend"
],
"viewKeys": [
"feature-a",
"team-a"
]
},
"progressiveReleaseConfig": {
"rolloutContextKindKey": "user",
"stages": [
{
"allocation": 25000,
"durationMillis": 60000
},
{
"allocation": 25000,
"durationMillis": 60000
}
]
},
"name": "Production Release",
"rank": 1,
"_id": "550e8400-e29b-41d4-a716-446655440000",
"guardedReleaseConfig": {
"metricKeys": [
"http-errors",
"latency"
],
"rolloutContextKindKey": "user",
"metricRegressionThreshold": 0.05,
"metricGroupKeys": [
"frontend-metrics",
"backend-metrics"
],
"minSampleSize": 100,
"stages": [
{
"allocation": 25000,
"durationMillis": 60000
},
{
"allocation": 25000,
"durationMillis": 60000
}
],
"rollbackOnRegression": true
},
"key": "production-release"
}
]
},
"properties": {
"items": {
"description": "List of release policies",
"items": {
"$ref": "#/components/schemas/ReleasePolicy"
},
"type": "array"
},
"totalCount": {
"description": "Total number of release policies",
"example": 42,
"type": "integer"
}
},
"required": [
"items",
"totalCount"
],
"type": "object"
},
"ReleaseMethod": {
"description": "The release method for this policy",
"enum": [
"guarded-release",
"progressive-release"
],
"type": "string"
},
"ReleasePolicyStage": {
"example": {
"allocation": 25000,
"durationMillis": 60000
},
"properties": {
"allocation": {
"example": 25000,
"type": "integer"
},
"durationMillis": {
"example": 60000,
"format": "int64",
"type": "integer"
}
},
"required": [
"allocation",
"durationMillis"
],
"type": "object"
},
"ReleasePoliciesAccessRep": {
"allOf": [
{
"$ref": "#/components/schemas/ReleasePoliciesAccess"
}
],
"example": {
"allowed": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
],
"denied": [
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
{
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
}
]
},
"x-go-type": "reps.AccessRep"
},
"ReleasePoliciesAccess": {
"properties": {
"denied": {
"items": {
"$ref": "#/components/schemas/ReleasePoliciesAccessDenied"
},
"type": "array"
},
"allowed": {
"items": {
"$ref": "#/components/schemas/ReleasePoliciesAccessAllowedRep"
},
"type": "array"
}
},
"required": [
"allowed",
"denied"
],
"type": "object"
},
"ReleasePoliciesAccessDenied": {
"example": {
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
"properties": {
"action": {
"type": "string"
},
"reason": {
"$ref": "#/components/schemas/ReleasePoliciesAccessDeniedReason"
}
},
"required": [
"action",
"reason"
],
"type": "object"
},
"ReleasePoliciesAccessDeniedReason": {
"example": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"properties": {
"resources": {
"description": "Resource specifier strings",
"example": [
"proj/*:env/*;qa_*:/flag/*"
],
"items": {
"type": "string"
},
"type": "array"
},
"notResources": {
"description": "Targeted resources are the resources NOT in this list. The resources and notActions fields must be empty to use this field.",
"items": {
"type": "string"
},
"type": "array"
},
"actions": {
"description": "Actions to perform on a resource",
"example": [
"*"
],
"items": {
"$ref": "#/components/schemas/ActionSpecifier"
},
"type": "array"
},
"notActions": {
"description": "Targeted actions are the actions NOT in this list. The actions and notResources fields must be empty to use this field.",
"items": {
"$ref": "#/components/schemas/ActionSpecifier"
},
"type": "array"
},
"effect": {
"description": "Whether this statement should allow or deny actions on the resources.",
"enum": [
"allow",
"deny"
],
"example": "allow",
"type": "string"
},
"role_name": {
"type": "string"
}
},
"required": [
"effect"
],
"type": "object"
},
"ReleasePoliciesAccessAllowedRep": {
"example": {
"reason": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"action": "action"
},
"properties": {
"action": {
"type": "string"
},
"reason": {
"$ref": "#/components/schemas/ReleasePoliciesAccessAllowedReason"
}
},
"required": [
"action",
"reason"
],
"type": "object"
},
"ReleasePoliciesAccessAllowedReason": {
"example": {
"role_name": "role_name",
"notActions": [
null,
null
],
"notResources": [
"notResources",
"notResources"
],
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"actions": [
"*"
]
},
"properties": {
"resources": {
"description": "Resource specifier strings",
"example": [
"proj/*:env/*;qa_*:/flag/*"
],
"items": {
"type": "string"
},
"type": "array"
},
"notResources": {
"description": "Targeted resources are the resources NOT in this list. The resources and notActions fields must be empty to use this field.",
"items": {
"type": "string"
},
"type": "array"
},
"actions": {
"description": "Actions to perform on a resource",
"example": [
"*"
],
"items": {
"$ref": "#/components/schemas/ActionSpecifier"
},
"type": "array"
},
"notActions": {
"description": "Targeted actions are the actions NOT in this list. The actions and notResources fields must be empty to use this field.",
"items": {
"$ref": "#/components/schemas/ActionSpecifier"
},
"type": "array"
},
"effect": {
"description": "Whether this statement should allow or deny actions on the resources.",
"enum": [
"allow",
"deny"
],
"example": "allow",
"type": "string"
},
"role_name": {
"type": "string"
}
},
"required": [
"effect"
],
"type": "object"
},
"DeploymentCollectionRep": {
"type": "object",
"required": [
"totalCount",
"items"
],
"properties": {
"totalCount": {
"type": "integer",
"description": "The total number of deployments",
"example": 25
},
"items": {
"type": "array",
"description": "A list of deployments",
"items": {
"$ref": "#/components/schemas/DeploymentRep"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"next": {
"href": "/api/v2/engineering-insights/deployments?after=a4290006-1fd1-4ca5-acf7-9f31fac61cf5",
"type": "application/json"
},
"self": {
"href": "/api/v2/engineering-insights/deployments",
"type": "application/json"
}
}
}
}
},
"DeploymentKind": {
"type": "string"
},
"DeploymentRep": {
"type": "object",
"required": [
"id",
"applicationKey",
"applicationVersion",
"startedAt",
"status",
"kind",
"active",
"archived",
"environmentKey",
"numberOfContributors",
"numberOfPullRequests",
"linesAdded",
"linesDeleted",
"leadTime"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "The deployment ID",
"example": "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11"
},
"applicationKey": {
"type": "string",
"description": "The application key",
"example": "billing-service"
},
"applicationVersion": {
"type": "string",
"description": "The application version",
"example": "a90a8a2"
},
"startedAt": {
"description": "The time the deployment started",
"example": "1706701522000",
"$ref": "#/components/schemas/UnixMillis"
},
"endedAt": {
"description": "The time the deployment ended",
"example": "1706712518000",
"$ref": "#/components/schemas/UnixMillis"
},
"durationMs": {
"type": "integer",
"format": "int64",
"description": "The duration of the deployment in milliseconds",
"example": 10996000
},
"status": {
"description": "The status of the deployment",
"example": "finished",
"$ref": "#/components/schemas/DeploymentStatus"
},
"kind": {
"description": "The kind of deployment",
"example": "redeployment",
"$ref": "#/components/schemas/DeploymentKind"
},
"active": {
"type": "boolean",
"description": "Whether the deployment is active",
"example": true
},
"metadata": {
"type": "object",
"additionalProperties": {},
"description": "The metadata associated with the deployment",
"example": {
"buildNumber": "1234"
}
},
"archived": {
"type": "boolean",
"description": "Whether the deployment is archived",
"example": false
},
"environmentKey": {
"type": "string",
"description": "The environment key",
"example": "production"
},
"numberOfContributors": {
"type": "integer",
"description": "The number of contributors",
"example": 1
},
"numberOfPullRequests": {
"type": "integer",
"description": "The number of pull requests",
"example": 2
},
"linesAdded": {
"type": "integer",
"format": "int64",
"description": "The number of lines added",
"example": 100
},
"linesDeleted": {
"type": "integer",
"format": "int64",
"description": "The number of lines deleted",
"example": 50
},
"leadTime": {
"type": "integer",
"format": "int64",
"description": "The total lead time from first commit to deployment end in milliseconds",
"example": 20237000
},
"pullRequests": {
"description": "The pull requests contained in the deployment",
"$ref": "#/components/schemas/PullRequestCollectionRep"
},
"flagReferences": {
"description": "The flag references contained in the deployment",
"$ref": "#/components/schemas/FlagReferenceCollectionRep"
},
"leadTimeStages": {
"description": "The lead time stages for the deployment",
"$ref": "#/components/schemas/LeadTimeStagesRep"
}
}
},
"DeploymentStatus": {
"type": "string"
},
"EvaluationsSummary": {
"type": "object",
"properties": {
"variations": {
"type": "array",
"description": "A list of variation evaluations",
"items": {
"$ref": "#/components/schemas/VariationEvalSummary"
}
}
}
},
"EventType": {
"type": "string"
},
"FailureReasonRep": {
"type": "object",
"required": [
"attribute",
"reason"
],
"properties": {
"attribute": {
"type": "string",
"description": "The attribute that failed validation",
"example": "projectKey"
},
"reason": {
"type": "string",
"description": "The reason the attribute failed validation",
"example": "must be present"
}
}
},
"FlagEventCollectionRep": {
"type": "object",
"required": [
"totalCount",
"items"
],
"properties": {
"totalCount": {
"type": "integer",
"description": "The total number of flag events",
"example": 1200
},
"items": {
"type": "array",
"description": "A list of flag events",
"items": {
"$ref": "#/components/schemas/FlagEventRep"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources",
"example": {
"next": {
"href": "/api/v2/engineering-insights/flag-events?after=a4290006-1fd1-4ca5-acf7-9f31fac61cf5",
"type": "application/json"
},
"self": {
"href": "/api/v2/engineering-insights/flag-events",
"type": "application/json"
}
}
}
}
},
"FlagEventExperiment": {
"type": "object",
"required": [
"key",
"name",
"iteration"
],
"properties": {
"key": {
"type": "string",
"description": "The experiment key",
"example": "experiment-1"
},
"name": {
"type": "string",
"description": "The experiment name",
"example": "Experiment 1"
},
"iteration": {
"description": "The experiment iteration",
"$ref": "#/components/schemas/FlagEventExperimentIteration"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"FlagEventExperimentCollection": {
"type": "object",
"required": [
"totalCount",
"items"
],
"properties": {
"totalCount": {
"type": "integer",
"description": "The total number of experiments",
"example": 1
},
"items": {
"type": "array",
"description": "A list of experiments",
"items": {
"$ref": "#/components/schemas/FlagEventExperiment"
}
}
}
},
"FlagEventExperimentIteration": {
"type": "object",
"required": [
"id",
"status",
"startedAt"
],
"properties": {
"id": {
"type": "string",
"description": "The experiment iteration ID",
"example": "65baa44ecc4b5bce113bb4f7"
},
"status": {
"description": "The experiment iteration status",
"example": "running",
"enum": [
"running",
"stopped"
],
"$ref": "#/components/schemas/IterationStatus"
},
"startedAt": {
"description": "Timestamp of when the iteration started",
"example": "1655314200000",
"$ref": "#/components/schemas/UnixMillis"
},
"endedAt": {
"description": "Timestamp of when the iteration ended",
"example": "1656610200000",
"$ref": "#/components/schemas/UnixMillis"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"FlagEventImpactRep": {
"type": "object",
"properties": {
"size": {
"type": "string",
"description": "The size of the flag event impact. Sizes are defined as: none (0%), small (0-20%), medium (20-80%), large (>80%)",
"example": "medium",
"enum": [
"none",
"small",
"medium",
"large"
]
},
"percentage": {
"type": "number",
"description": "The percentage of the flag event impact",
"example": 50
},
"reason": {
"description": "The reason for the flag event impact",
"example": "evaluations",
"enum": [
"evaluations",
"global",
"waiting"
],
"$ref": "#/components/schemas/ImpactReason"
},
"evaluationsSummary": {
"description": "A summary of the change in variation evaluations after the flag event",
"$ref": "#/components/schemas/EvaluationsSummary"
}
}
},
"FlagEventMemberRep": {
"type": "object",
"required": [
"id",
"email",
"firstName",
"lastName"
],
"properties": {
"id": {
"type": "string",
"description": "The member ID",
"example": "65baa44ecc4b5bce113bb4f7"
},
"email": {
"type": "string",
"description": "The member email",
"example": "test@launchdarkly.com"
},
"firstName": {
"type": "string",
"description": "The member first name"
},
"lastName": {
"type": "string",
"description": "The member last name"
}
}
},
"FlagEventRep": {
"type": "object",
"required": [
"id",
"projectId",
"projectKey",
"flagKey",
"eventType",
"eventTime",
"description",
"impact"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "The flag event ID",
"example": "e3b2b0e0-9e9b-4c9a-8e9a-0e0e0e0e0e0e"
},
"projectId": {
"type": "string",
"description": "The project ID",
"example": "65baa44ecc4b5bce113bb4f7"
},
"projectKey": {
"type": "string",
"description": "The project key",
"example": "default"
},
"environmentId": {
"type": "string",
"description": "The environment ID",
"example": "65baa44ecc4b5bce113bb4f7"
},
"environmentKey": {
"type": "string",
"description": "The environment key",
"example": "production"
},
"flagKey": {
"type": "string",
"description": "The flag key",
"example": "enable-new-payment-method"
},
"eventType": {
"description": "The event type",
"example": "enabled_targeting",
"$ref": "#/components/schemas/EventType"
},
"eventTime": {
"description": "A Unix timestamp in milliseconds",
"example": "1616425200000",
"$ref": "#/components/schemas/UnixMillis"
},
"description": {
"type": "string",
"description": "The event description",
"example": "Targeting rule enabled"
},
"auditLogEntryId": {
"type": "string",
"description": "The audit log entry ID",
"example": "e3b2b0e0-9e9b-4c9a-8e9a-0e0e0e0e0e0e"
},
"member": {
"description": "The member data",
"$ref": "#/components/schemas/FlagEventMemberRep"
},
"actions": {
"type": "array",
"description": "The resource actions",
"items": {
"type": "string"
}
},
"impact": {
"description": "The flag event evaluation impact",
"$ref": "#/components/schemas/FlagEventImpactRep"
},
"experiments": {
"description": "A list of experiment iterations related to the flag event",
"$ref": "#/components/schemas/FlagEventExperimentCollection"
}
}
},
"FlagReferenceCollectionRep": {
"type": "object",
"required": [
"totalCount",
"items"
],
"properties": {
"totalCount": {
"type": "integer",
"description": "The total number of flag references",
"example": 25
},
"items": {
"type": "array",
"description": "A list of flag references",
"items": {
"$ref": "#/components/schemas/FlagReferenceRep"
}
}
}
},
"FlagReferenceRep": {
"type": "object",
"required": [
"projectKey",
"flagKey",
"referencesAdded",
"referencesRemoved"
],
"properties": {
"projectKey": {
"type": "string",
"description": "The project key",
"example": "default"
},
"flagKey": {
"type": "string",
"description": "The flag key",
"example": "enable-new-payment-structure"
},
"referencesAdded": {
"type": "integer",
"description": "The number of references added",
"example": 2
},
"referencesRemoved": {
"type": "integer",
"description": "The number of references removed",
"example": 5
}
}
},
"ImpactReason": {
"type": "string"
},
"InsightGroup": {
"type": "object",
"required": [
"key",
"name",
"projectKey",
"environmentKey",
"createdAt"
],
"properties": {
"environment": {
"description": "Expanded details about the environment",
"$ref": "#/components/schemas/Environment"
},
"scores": {
"description": "The scores for the insight group",
"$ref": "#/components/schemas/InsightGroupScores"
},
"scoreMetadata": {
"description": "Metadata about the insight scores, when expanded",
"$ref": "#/components/schemas/InsightGroupCollectionScoreMetadata"
},
"key": {
"type": "string",
"description": "The insight group key",
"example": "default-production-all-apps"
},
"name": {
"type": "string",
"description": "The insight group name",
"example": "Production - All Apps"
},
"projectKey": {
"type": "string",
"description": "The project key",
"example": "default"
},
"environmentKey": {
"type": "string",
"description": "The environment key",
"example": "production"
},
"applicationKeys": {
"type": "array",
"description": "The application keys",
"items": {
"type": "string"
},
"example": [
"billing-service",
"inventory-service"
]
},
"createdAt": {
"description": "The time the insight group was created",
"example": "1706701522000",
"$ref": "#/components/schemas/UnixMillis"
}
}
},
"InsightGroupCollection": {
"type": "object",
"required": [
"totalCount",
"items"
],
"properties": {
"totalCount": {
"type": "integer",
"description": "The total number of insight groups",
"example": 15
},
"items": {
"type": "array",
"description": "A list of insight groups",
"items": {
"$ref": "#/components/schemas/InsightGroup"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
},
"metadata": {
"description": "Metadata about the insight groups",
"$ref": "#/components/schemas/InsightGroupCollectionMetadata"
},
"scoreMetadata": {
"description": "Metadata about the insight scores, when expanded",
"$ref": "#/components/schemas/InsightGroupCollectionScoreMetadata"
}
}
},
"InsightGroupCollectionMetadata": {
"type": "object",
"required": [
"countByIndicator"
],
"properties": {
"countByIndicator": {
"$ref": "#/components/schemas/InsightGroupsCountByIndicator"
}
}
},
"InsightGroupCollectionScoreMetadata": {
"type": "object",
"required": [
"period",
"lastPeriod"
],
"properties": {
"period": {
"description": "The time period for the score calculations",
"$ref": "#/components/schemas/InsightPeriod"
},
"lastPeriod": {
"description": "The time period for the score calculations in the last period",
"$ref": "#/components/schemas/InsightPeriod"
}
}
},
"InsightGroupScores": {
"type": "object",
"required": [
"overall",
"deploymentFrequency",
"deploymentFailureRate",
"leadTime",
"impactSize",
"experimentationCoverage",
"flagHealth",
"velocity",
"risk",
"efficiency"
],
"properties": {
"overall": {
"description": "The overall score for the insight group",
"$ref": "#/components/schemas/InsightsMetricScore"
},
"deploymentFrequency": {
"description": "The deployment frequency score for the insight group",
"$ref": "#/components/schemas/InsightsMetricScore"
},
"deploymentFailureRate": {
"description": "The deployment failure rate score for the insight group",
"$ref": "#/components/schemas/InsightsMetricScore"
},
"leadTime": {
"description": "The lead time score for the insight group",
"$ref": "#/components/schemas/InsightsMetricScore"
},
"impactSize": {
"description": "The impact size score for the insight group",
"$ref": "#/components/schemas/InsightsMetricScore"
},
"experimentationCoverage": {
"description": "The Experimentation coverage score for the insight group",
"$ref": "#/components/schemas/InsightsMetricScore"
},
"flagHealth": {
"description": "The flag health score for the insight group",
"$ref": "#/components/schemas/InsightsMetricScore"
},
"velocity": {
"description": "The velocity score for the insight group",
"$ref": "#/components/schemas/InsightsMetricScore"
},
"risk": {
"description": "The risk score for the insight group",
"$ref": "#/components/schemas/InsightsMetricScore"
},
"efficiency": {
"description": "The efficiency score for the insight group",
"$ref": "#/components/schemas/InsightsMetricScore"
},
"creationRatio": {
"description": "The creation ratio score for the insight group",
"$ref": "#/components/schemas/InsightsMetricScore"
}
}
},
"InsightGroupsCountByIndicator": {
"type": "object",
"required": [
"excellent",
"good",
"fair",
"needsAttention",
"notCalculated",
"unknown",
"total"
],
"properties": {
"excellent": {
"type": "integer",
"description": "The number of insight groups with an excellent indicator",
"example": 1
},
"good": {
"type": "integer",
"description": "The number of insight groups with a good indicator",
"example": 1
},
"fair": {
"type": "integer",
"description": "The number of insight groups with a fair indicator",
"example": 1
},
"needsAttention": {
"type": "integer",
"description": "The number of insight groups with a needs attention indicator",
"example": 1
},
"notCalculated": {
"type": "integer",
"description": "The number of insight groups with a not calculated indicator",
"example": 1
},
"unknown": {
"type": "integer",
"description": "The number of insight groups with an unknown indicator",
"example": 1
},
"total": {
"type": "integer",
"description": "The total number of insight groups",
"example": 6
}
}
},
"InsightPeriod": {
"type": "object",
"required": [
"startTime",
"endTime"
],
"properties": {
"startTime": {
"description": "The start time of the period",
"example": "1706701522000",
"$ref": "#/components/schemas/UnixMillis"
},
"endTime": {
"description": "The end time of the period",
"example": "1706701522000",
"$ref": "#/components/schemas/UnixMillis"
}
}
},
"InsightScores": {
"type": "object",
"required": [
"period",
"lastPeriod",
"scores"
],
"properties": {
"period": {
"description": "The time period for the scores",
"$ref": "#/components/schemas/InsightPeriod"
},
"lastPeriod": {
"description": "The time period for the scores in the last period",
"$ref": "#/components/schemas/InsightPeriod"
},
"scores": {
"description": "The scores for the insight groups",
"$ref": "#/components/schemas/InsightGroupScores"
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"InsightsChart": {
"type": "object",
"required": [
"metadata",
"series"
],
"properties": {
"metadata": {
"description": "Metadata for the chart",
"$ref": "#/components/schemas/InsightsChartMetadata"
},
"series": {
"type": "array",
"description": "Series data for the chart",
"items": {
"$ref": "#/components/schemas/InsightsChartSeries"
}
}
}
},
"InsightsChartBounds": {
"type": "object",
"required": [
"name",
"value"
],
"properties": {
"name": {
"type": "string",
"description": "Name of the bound",
"example": "equal"
},
"value": {
"type": "integer",
"format": "int64",
"description": "Value of the bound",
"example": 100
}
}
},
"InsightsChartMetadata": {
"type": "object",
"required": [
"summary",
"xAxis",
"yAxis"
],
"properties": {
"summary": {
"description": "Metadata values",
"$ref": "#/components/schemas/InsightsChartMetadataCustomValues"
},
"name": {
"type": "string",
"description": "Name of the chart",
"example": "deploymentFrequency"
},
"metrics": {
"description": "Metrics for the given chart data, included when expanded",
"$ref": "#/components/schemas/InsightsChartMetrics"
},
"xAxis": {
"description": "X-axis metadata",
"example": "timestamp",
"$ref": "#/components/schemas/InsightsChartSeriesMetadataAxis"
},
"yAxis": {
"description": "Y-axis metadata",
"example": "count",
"$ref": "#/components/schemas/InsightsChartSeriesMetadataAxis"
}
}
},
"InsightsChartMetadataCustomValues": {
"type": "object",
"additionalProperties": {}
},
"InsightsChartMetric": {
"type": "object",
"required": [
"indicator",
"value",
"unit",
"modifier",
"tiers"
],
"properties": {
"indicator": {
"type": "string",
"description": "Metric indicator tier",
"example": "excellent"
},
"value": {
"type": "number",
"description": "Metric value",
"example": 5
},
"unit": {
"type": "string",
"description": "Metric unit",
"example": "count"
},
"modifier": {
"type": "string",
"description": "Metric modifier",
"example": "per day"
},
"tiers": {
"type": "array",
"description": "Metric indicator tiers",
"items": {
"$ref": "#/components/schemas/InsightsMetricTierDefinition"
}
}
}
},
"InsightsChartMetrics": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/InsightsChartMetric"
}
},
"InsightsChartSeries": {
"type": "object",
"required": [
"metadata",
"data"
],
"properties": {
"metadata": {
"description": "Metadata for the series",
"$ref": "#/components/schemas/InsightsChartSeriesMetadata"
},
"data": {
"type": "array",
"description": "Data points for the series",
"items": {
"$ref": "#/components/schemas/InsightsChartSeriesDataPoint"
}
}
}
},
"InsightsChartSeriesDataPoint": {
"type": "object",
"required": [
"x",
"y"
],
"properties": {
"x": {
"type": "integer",
"format": "int64",
"description": "X-axis value",
"example": 1617225600000
},
"y": {
"type": "integer",
"format": "int64",
"description": "Y-axis value",
"example": 100
},
"values": {
"type": "object",
"additionalProperties": {},
"description": "Additional values for the data point"
}
}
},
"InsightsChartSeriesMetadata": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Name of the series"
},
"count": {
"type": "integer",
"format": "int64",
"description": "Aggregate count of the series values"
},
"bounds": {
"type": "array",
"description": "Bounds for the series data",
"items": {
"$ref": "#/components/schemas/InsightsChartBounds"
}
}
}
},
"InsightsChartSeriesMetadataAxis": {
"type": "object",
"required": [
"unit"
],
"properties": {
"unit": {
"type": "string",
"description": "Unit of the axis",
"example": "count"
}
}
},
"InsightsMetricIndicatorRange": {
"type": "object",
"required": [
"min",
"max"
],
"properties": {
"min": {
"type": "integer",
"description": "The minimum value for the indicator range",
"example": 0
},
"max": {
"type": "integer",
"description": "The maximum value for the indicator range",
"example": 100
}
}
},
"InsightsMetricScore": {
"type": "object",
"required": [
"score",
"indicator",
"indicatorRange"
],
"properties": {
"score": {
"type": "integer",
"description": "The score for the metric",
"example": 100
},
"aggregateOf": {
"type": "array",
"description": "The keys of the metrics that were aggregated to calculate this score",
"items": {
"type": "string"
},
"example": [
"deploymentFrequency",
"leadTime"
]
},
"diffVsLastPeriod": {
"type": "integer"
},
"indicator": {
"description": "The indicator for the score",
"example": "excellent",
"enum": [
"excellent",
"good",
"fair",
"needsAttention",
"notCalculated",
"unknown"
],
"$ref": "#/components/schemas/InsightsMetricScoreIndicator"
},
"indicatorRange": {
"description": "The indicator range for the score",
"$ref": "#/components/schemas/InsightsMetricIndicatorRange"
},
"lastPeriod": {
"description": "The score for the metric in the last period",
"$ref": "#/components/schemas/InsightsMetricScore"
}
}
},
"InsightsMetricScoreIndicator": {
"type": "string"
},
"InsightsMetricTierDefinition": {
"type": "object",
"required": [
"indicator",
"description"
],
"properties": {
"indicator": {
"type": "string",
"description": "Metric indicator tier",
"example": "excellent"
},
"description": {
"type": "string",
"description": "Metric indicator description",
"example": "at least 1 per day"
}
}
},
"InsightsRepository": {
"type": "object",
"required": [
"_id",
"version",
"key",
"type",
"url",
"mainBranch"
],
"properties": {
"_id": {
"type": "string",
"format": "uuid",
"description": "The repository ID",
"example": "5f9a9b1a-5b9a-4b9a-9a9a-9a9a9a9a9a9a"
},
"version": {
"type": "integer",
"description": "The repository version",
"example": 1
},
"key": {
"type": "string",
"description": "The repository key",
"example": "launchdarkly/LaunchDarkly-Docs"
},
"type": {
"type": "string",
"description": "The repository type",
"example": "github"
},
"url": {
"type": "string",
"description": "The repository URL",
"example": "https://github.com/launchdarkly/LaunchDarkly-Docs"
},
"mainBranch": {
"type": "string",
"description": "The repository main branch",
"example": "main"
},
"projects": {
"$ref": "#/components/schemas/ProjectSummaryCollection"
}
}
},
"InsightsRepositoryCollection": {
"type": "object",
"required": [
"totalCount",
"items"
],
"properties": {
"totalCount": {
"type": "integer",
"description": "Total number of repositories",
"example": 1
},
"items": {
"type": "array",
"description": "List of repositories",
"items": {
"$ref": "#/components/schemas/InsightsRepository"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"InsightsRepositoryProject": {
"type": "object",
"required": [
"repositoryKey",
"projectKey"
],
"properties": {
"repositoryKey": {
"type": "string",
"description": "The repository key",
"example": "launchdarkly/LaunchDarkly-Docs"
},
"projectKey": {
"type": "string",
"description": "The project key",
"example": "default"
}
}
},
"InsightsRepositoryProjectCollection": {
"type": "object",
"required": [
"totalCount",
"items"
],
"properties": {
"totalCount": {
"type": "integer",
"description": "Total number of repository project associations",
"example": 1
},
"items": {
"type": "array",
"description": "List of repository project associations",
"items": {
"$ref": "#/components/schemas/InsightsRepositoryProject"
}
},
"_links": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Link"
},
"description": "The location and content type of related resources"
}
}
},
"InsightsRepositoryProjectMappings": {
"type": "object",
"required": [
"mappings"
],
"properties": {
"mappings": {
"type": "array",
"items": {
"$ref": "#/components/schemas/InsightsRepositoryProject"
}
}
}
},
"IterationStatus": {
"type": "string"
},
"LeadTimeStagesRep": {
"type": "object",
"required": [
"codingDurationMs"
],
"properties": {
"codingDurationMs": {
"type": "integer",
"format": "int64",
"description": "The coding duration in milliseconds",
"example": 1000000
},
"reviewDurationMs": {
"type": "integer",
"format": "int64",
"description": "The review duration in milliseconds",
"example": 500000
},
"waitDurationMs": {
"type": "integer",
"format": "int64",
"description": "The wait duration between merge time and deploy start time in milliseconds",
"example": 100000
},
"deployDurationMs": {
"type": "integer",
"format": "int64",
"description": "The deploy duration in milliseconds",
"example": 100000
},
"totalLeadTimeMs": {
"type": "integer",
"format": "int64",
"description": "The total lead time in milliseconds",
"example": 1600000
}
}
},
"PostDeploymentEventInput": {
"type": "object",
"required": [
"projectKey",
"environmentKey",
"applicationKey",
"version",
"eventType"
],
"properties": {
"projectKey": {
"type": "string",
"description": "The project key",
"example": "default"
},
"environmentKey": {
"type": "string",
"description": "The environment key",
"example": "production"
},
"applicationKey": {
"type": "string",
"description": "The application key. This defines the granularity at which you want to view your insights metrics. Typically it is the name of one of the GitHub repositories that you use in this project.server",
"example": "server",
"enum": [
"server",
"browser",
"mobile"
]
},
"version": {
"type": "string",
"description": "The application version. You can set the application version to any string that includes only letters, numbers, periods (.), hyphens (-), or underscores (_).