UNPKG

openapi-directory

Version:

Building & bundling https://github.com/APIs-guru/openapi-directory for easy use from JS

1 lines 144 kB
{"openapi":"3.0.1","servers":[{"url":"https://api.configcat.com"}],"info":{"contact":{"email":"support@configcat.com","name":"ConfigCat","url":"https://configcat.com","x-twitter":"configcat"},"description":"**Base API URL**: https://api.configcat.com\n\nIf you prefer the swagger documentation, you can find it here: [Swagger UI](https://api.configcat.com/swagger).\n\nThe purpose of this API is to access the ConfigCat platform programmatically. \nYou can **Create**, **Read**, **Update** and **Delete** any entities like **Feature Flags, Configs, Environments** or **Products** within ConfigCat. \n\nThe API is based on HTTP REST, uses resource-oriented URLs, status codes and supports JSON \nand JSON+HAL format. Do not use this API for accessing and evaluating feature flag values. Use the [SDKs instead](https://configcat.com/docs/sdk-reference/overview).\n\n\n# OpenAPI Specification\n\nThe complete specification is publicly available here: [swagger.json](v1/swagger.json). \nYou can use it to generate client libraries in various languages with [OpenAPI Generator](https://github.com/OpenAPITools/openapi-generator) or\n[Swagger Codegen](https://swagger.io/tools/swagger-codegen/) to interact with this API.\n\n# Authentication\nThis API uses the [Basic HTTP Authentication Scheme](https://en.wikipedia.org/wiki/Basic_access_authentication). \n\n<!-- ReDoc-Inject: <security-definitions> -->\n\n# Throttling and rate limits\nAll the rate limited API calls are returning information about the current rate limit period in the following HTTP headers:\n\n| Header | Description |\n| :- | :- |\n| X-Rate-Limit-Remaining | The maximum number of requests remaining in the current rate limit period. |\n| X-Rate-Limit-Reset | The time\twhen the current rate limit period resets.\t\t\t\t\t\t |\n\nWhen the rate limit is exceeded by a request, the API returns with a `HTTP 429 - Too many requests` status along with a `Retry-After` HTTP header.\n","termsOfService":"https://configcat.com/termsofserviceagreement","title":"ConfigCat Public Management API","version":"v1","x-apisguru-categories":["developer_tools"],"x-logo":{"url":"https://api.configcat.com/resources/configcat-logo-horiz.svg"},"x-origin":[{"format":"openapi","url":"https://api.configcat.com/docs/v1/swagger.json","version":"3.0"}],"x-providerName":"configcat.com"},"security":[{"Basic":[]}],"tags":[{"description":"With these endpoints you can control how your existing Feature Flags and Settings should serve their values. \nYou can turn Feature Flags on or off, update Setting values and also add, remove or change the order of Percentage and Targeting Rules.\n\nThese endpoints are determining the Environment and Config by the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://app.configcat.com/sdkkey\">SDK key</a> passed in\nthe `X-CONFIGCAT-SDKKEY` request header. To identify the desired Feature Flag or Setting to change, \nyou can use either its `settingId` or `key` attribute. You can get those attributes \nfrom the [Feature Flag & Setting](#tag/Feature-Flags-and-Settings) endpoints.","name":"Feature Flag & Setting values using SDK Key"},{"description":"With these endpoints you can control how your existing Feature Flags and Settings should serve their values. \nYou can turn Feature Flags on or off, update Setting values and also add, remove or reorder Percentage and Targeting Rules.\n\nTo determine which Feature Flag or Setting you want to work with you have to pass its `settingId`. It can be\nobtained from the [Feature Flag & Setting](#tag/Feature-Flags-and-Settings) endpoints.\n\nYou also have to specify in which Environment you want to change the served value configuration by its\n`environmentId` which can be obtained from the [List Environments](#operation/get-environments) endpoint.","name":"Feature Flag & Setting values"},{"description":"With these endpoints you can manage your Feature Flags or Settings within a Config. \nHowever you can't use them for manipulating the values of your Feature Flags and Settings,\nto do that please visit the [Feature Flag & Setting values using SDK Key](#tag/Feature-Flag-and-Setting-values-using-SDK-Key)\nand [Feature Flag & Setting values](#tag/Feature-Flag-and-Setting-values) sections of the API.\n\nFor using these endpoints, first you have to select which Config you want to work with by its `configId` \nwhich can be obtained from the [List Configs](#operation/get-configs) endpoint. \nThen you can use it to create new Feature Flags or to get information about existing ones.\n\nThen you can obtain the `settingId` or `key` of your desired Feature Flag or Setting \nto use them for further operations in this API. \n\n<a href=\"https://configcat.com/docs/main-concepts/#setting\" target=\"_blank\" rel=\"noopener noreferrer\">Here</a> you can read more about the concept of Settings.","name":"Feature Flags & Settings"},{"description":"With these endpoints you can get useful information about your Organizations.\nThis also can be used to manage your [Products](#tag/Products).\n\n<a href=\"https://configcat.com/docs/organization/\" target=\"_blank\" rel=\"noopener noreferrer\">Here</a> you can read more about the Organizations.","name":"Organizations"},{"description":"With these endpoints you can manage your Members.\n\n<a href=\"https://configcat.com/docs/advanced/team-collaboration\" target=\"_blank\" rel=\"noopener noreferrer\">Here</a> you can read more about Team Collaboration.","name":"Members"},{"description":"With these endpoints you can manage your Permission Groups.\n\n<a href=\"https://configcat.com/docs/advanced/team-collaboration#permissions--groups\" target=\"_blank\" rel=\"noopener noreferrer\">Here</a> you can read more about Permissions.","name":"Permission Groups"},{"description":"With these endpoints you can manage your Products.\nThis also can be used to manage [Environments](#tag/Environments), [Configs](#tag/Configs), [Tags](#tag/Tags) and [Permission Groups](#tag/Permission-Groups) through this API.\n\n<a href=\"https://configcat.com/docs/main-concepts/#product\" target=\"_blank\" rel=\"noopener noreferrer\">Here</a> you can read more about the concept of Products.","name":"Products"},{"description":"With these endpoints you can manage your Configs.\nThis also can be used to manage [Feature Flags and Settings](#tag/Feature-Flags-and-Settings) and their \n[served values](#tag/Feature-Flag-and-Setting-values) through this API.\n\n<a href=\"https://configcat.com/docs/main-concepts/#config\" target=\"_blank\" rel=\"noopener noreferrer\">Here</a> you can read more about the concept of Configs.","name":"Configs"},{"description":"With these endpoints you can update existing Environments or add new ones into your selected [Product](#tag/Products). \n\n<a href=\"https://configcat.com/docs/main-concepts/#environment\" target=\"_blank\" rel=\"noopener noreferrer\">Here</a> you can read more about the concept of Environments.","name":"Environments"},{"description":"With these endpoints you can manage your Segments.\nSegments allow you to group your users based on any of their properties. Define user segments and add them to multiple feature flags.","name":"Segments"},{"description":"With these endpoints you can manage your SDK Keys.","name":"SDK Keys"},{"description":"With these endpoints you can manage Tags. Tags are stored under a Product. You can and add a Tag to a Feature Flag or Setting using the [Update Flag](#operation/update-setting) endpoint.","name":"Tags"},{"description":"Access audit log entries.","name":"Audit logs"},{"description":"Information about the current user.","name":"Me"},{"description":"With this endpoint you can upload Feature Flag and Setting usage references that will be shown on the ConfigCat Dashboard.\n\n<a href=\"https://configcat.com/docs/advanced/code-references/overview/\" target=\"_blank\" rel=\"noopener noreferrer\">Here</a> you can read more about the concept of Code References.","name":"Code References"}],"paths":{"/v1/code-references":{"post":{"requestBody":{"content":{"application/*+json":{"schema":{"$ref":"#/components/schemas/CodeReferenceRequest"}},"application/json":{"schema":{"$ref":"#/components/schemas/CodeReferenceRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/CodeReferenceRequest"}}},"required":true},"responses":{"200":{"description":"Success"},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"tags":["Code References"]}},"/v1/code-references/delete-reports":{"post":{"requestBody":{"content":{"application/*+json":{"schema":{"$ref":"#/components/schemas/DeleteRepositoryReportsRequest"}},"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRepositoryReportsRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/DeleteRepositoryReportsRequest"}}},"required":true},"responses":{"200":{"description":"Success"},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"tags":["Code References"]}},"/v1/configs/{configId}":{"delete":{"description":"This endpoint removes a Config identified by the `configId` parameter.","operationId":"delete-config","parameters":[{"description":"The identifier of the Config.","in":"path","name":"configId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"When the delete was successful."},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"summary":"Delete Config","tags":["Configs"]},"get":{"description":"This endpoint returns the metadata of a Config\nidentified by the `configId`.","operationId":"get-config","parameters":[{"description":"The identifier of the Config.","in":"path","name":"configId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/hal+json":{"schema":{"$ref":"#/components/schemas/ConfigModel-haljson"}},"application/json":{"schema":{"$ref":"#/components/schemas/ConfigModel"}}},"description":"When everything is ok, the config data returned."},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"summary":"Get Config","tags":["Configs"]},"put":{"description":"This endpoint updates a Config identified by the `configId` parameter.","operationId":"update-config","parameters":[{"description":"The identifier of the Config.","in":"path","name":"configId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateConfigRequest"}},"application/json":{"schema":{"$ref":"#/components/schemas/UpdateConfigRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateConfigRequest"}}},"required":true},"responses":{"200":{"content":{"application/hal+json":{"schema":{"$ref":"#/components/schemas/ConfigModel-haljson"}},"application/json":{"schema":{"$ref":"#/components/schemas/ConfigModel"}}},"description":""},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"summary":"Update Config","tags":["Configs"]}},"/v1/configs/{configId}/deleted-settings":{"get":{"description":"This endpoint returns the list of Feature Flags and Settings that were deleted from the given Config.","operationId":"get-deleted-settings","parameters":[{"description":"The identifier of the Config.","in":"path","name":"configId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/hal+json":{"schema":{"items":{"$ref":"#/components/schemas/SettingModel-haljson"},"type":"array"}},"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SettingModel"},"type":"array"}}},"description":""},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"summary":"List Deleted Settings","tags":["Audit logs"]}},"/v1/configs/{configId}/environments/{environmentId}":{"get":{"description":"This endpoint returns the SDK Key for your Config in a specified Environment.","operationId":"get-sdk-keys","parameters":[{"description":"The identifier of the Config.","in":"path","name":"configId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The identifier of the Environment.","in":"path","name":"environmentId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/hal+json":{"schema":{"$ref":"#/components/schemas/SdkKeysModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/SdkKeysModel"}}},"description":""},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"summary":"Get SDK Key","tags":["SDK Keys"]}},"/v1/configs/{configId}/environments/{environmentId}/values":{"get":{"description":"This endpoint returns the value of a specified Config's Feature Flags or Settings identified by the `configId` parameter\nin a specified Environment identified by the `environmentId` parameter.\n\nThe most important attributes in the response are the `value`, `rolloutRules` and `percentageRules`.\nThe `value` represents what the clients will get when the evaluation requests of our SDKs \nare not matching to any of the defined Targeting or Percentage Rules, or when there are no additional rules to evaluate.\n\nThe `rolloutRules` and `percentageRules` attributes are representing the current \nTargeting and Percentage Rules configuration of the actual Feature Flag or Setting \nin an **ordered** collection, which means the order of the returned rules is matching to the\nevaluation order. You can read more about these rules [here](https://configcat.com/docs/advanced/targeting/).","operationId":"get-setting-values","parameters":[{"description":"The identifier of the Config.","in":"path","name":"configId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The identifier of the Environment.","in":"path","name":"environmentId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/hal+json":{"schema":{"$ref":"#/components/schemas/ConfigSettingValuesModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/ConfigSettingValuesModel"}}},"description":"When everything is ok, the setting values returned."},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"summary":"Get values","tags":["Feature Flag & Setting values"]},"post":{"description":"This endpoint replaces the values of a specified Config's Feature Flags or Settings identified by the `configId` parameter\nin a specified Environment identified by the `environmentId` parameter.\n\nOnly the `value`, `rolloutRules` and `percentageRules` attributes are modifiable by this endpoint.\n\n**Important:** As this endpoint is doing a complete replace, it's important to set every other attribute that you don't \nwant to change in its original state. Not listing one means that it will reset.\n\nFor example: We have the following resource.\n```\n{\n \"settingValues\": [\n\t\t{\n\t\t\t\"rolloutPercentageItems\": [\n\t\t\t\t{\n\t\t\t\t\t\"percentage\": 30,\n\t\t\t\t\t\"value\": true\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"percentage\": 70,\n\t\t\t\t\t\"value\": false\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"rolloutRules\": [],\n\t\t\t\"value\": false,\n\t\t\t\"settingId\": 1\n\t\t}\n\t]\n}\n```\nIf we send a replace request body as below:\n```\n{ \n\t\"settingValues\": [\n\t\t{\n\t\t\t\"value\": true,\n\t\t\t\"settingId\": 1\n\t\t}\n\t]\n}\n```\nThen besides that the default value is set to `true`, all the Percentage Rules are deleted. \nSo we get a response like this:\n```\n{\n\t\"settingValues\": [\n\t\t{\n\t\t\t\"rolloutPercentageItems\": [],\n\t\t\t\"rolloutRules\": [],\n\t\t\t\"value\": true,\n\t\t\t\"setting\": \n\t\t\t{\n\t\t\t\t\"settingId\": 1\n\t\t\t}\n\t\t}\n\t]\n}\n```\n\nThe `rolloutRules` property describes two types of rules:\n\n- **Targeting rules**: When you want to add or update a targenting rule, the `comparator`, `comparisonAttribute`, and `comparisonValue` members are required.\n- **Segment rules**: When you want to add add or update a segment rule, the `segmentId` which identifies the desired segment and the `segmentComparator` members are required.","operationId":"post-setting-values","parameters":[{"description":"The identifier of the Config.","in":"path","name":"configId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The identifier of the Environment.","in":"path","name":"environmentId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The reason note for the Audit Log if the Product's \"Config changes require a reason\" preference is turned on.","in":"query","name":"reason","schema":{"type":"string"}}],"requestBody":{"content":{"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateSettingValuesWithIdModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSettingValuesWithIdModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateSettingValuesWithIdModel"}}},"required":true},"responses":{"200":{"content":{"application/hal+json":{"schema":{"$ref":"#/components/schemas/ConfigSettingValuesModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/ConfigSettingValuesModel"}}},"description":"When everything is ok, the updated setting values returned."},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"summary":"Post values","tags":["Feature Flag & Setting values"]}},"/v1/configs/{configId}/settings":{"get":{"description":"This endpoint returns the list of the Feature Flags and Settings defined in a \nspecified Config, identified by the `configId` parameter.","operationId":"get-settings","parameters":[{"description":"The identifier of the Config.","in":"path","name":"configId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/hal+json":{"schema":{"items":{"$ref":"#/components/schemas/SettingModel-haljson"},"type":"array"}},"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SettingModel"},"type":"array"}}},"description":""},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"summary":"List Flags","tags":["Feature Flags & Settings"]},"post":{"description":"This endpoint creates a new Feature Flag or Setting in a specified Config\nidentified by the `configId` parameter.\n\n**Important:** The `key` attribute must be unique within the given Config.","operationId":"create-setting","parameters":[{"description":"The identifier of the Config.","in":"path","name":"configId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateSettingInitialValues"}},"application/json":{"schema":{"$ref":"#/components/schemas/CreateSettingInitialValues"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateSettingInitialValues"}}},"required":true},"responses":{"201":{"content":{"application/hal+json":{"schema":{"$ref":"#/components/schemas/SettingModel-haljson"}},"application/json":{"schema":{"$ref":"#/components/schemas/SettingModel"}}},"description":"When the creation was successful."},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"summary":"Create Flag","tags":["Feature Flags & Settings"]}},"/v1/environments/{environmentId}":{"delete":{"description":"This endpoint removes an Environment identified by the `environmentId` parameter.","operationId":"delete-environment","parameters":[{"description":"The identifier of the Environment.","in":"path","name":"environmentId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"When the delete was successful."},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"summary":"Delete Environment","tags":["Environments"]},"get":{"description":"This endpoint returns the metadata of an Environment \nidentified by the `environmentId`.","operationId":"get-environment","parameters":[{"description":"The identifier of the Environment.","in":"path","name":"environmentId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/hal+json":{"schema":{"$ref":"#/components/schemas/EnvironmentModel-haljson"}},"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentModel"}}},"description":"When everything is ok, the environment data returned."},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"summary":"Get Environment","tags":["Environments"]},"put":{"description":"This endpoint updates an Environment identified by the `environmentId` parameter.","operationId":"update-environment","parameters":[{"description":"The identifier of the Environment.","in":"path","name":"environmentId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateEnvironmentModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEnvironmentModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateEnvironmentModel"}}},"required":true},"responses":{"200":{"content":{"application/hal+json":{"schema":{"$ref":"#/components/schemas/EnvironmentModel-haljson"}},"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentModel"}}},"description":""},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"summary":"Update Environment","tags":["Environments"]}},"/v1/environments/{environmentId}/settings/{settingId}/integrationLinks/{integrationLinkType}/{key}":{"delete":{"description":"","operationId":"delete-integration-link","parameters":[{"description":"The identifier of the Environment.","in":"path","name":"environmentId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The id of the Setting.","in":"path","name":"settingId","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"The integration's type.","in":"path","name":"integrationLinkType","required":true,"schema":{"$ref":"#/components/schemas/IntegrationLinkType"}},{"description":"The key of the integration link.","in":"path","name":"key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/hal+json":{"schema":{"$ref":"#/components/schemas/DeleteIntegrationLinkModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/DeleteIntegrationLinkModel"}}},"description":"When everything is ok."},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"summary":"Delete Integration link","tags":["Integration links"]},"post":{"description":"","operationId":"add-or-update-integration-link","parameters":[{"description":"The identifier of the Environment.","in":"path","name":"environmentId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The id of the Setting.","in":"path","name":"settingId","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"The integration link's type.","in":"path","name":"integrationLinkType","required":true,"schema":{"$ref":"#/components/schemas/IntegrationLinkType"}},{"description":"The key of the integration link.","in":"path","name":"key","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/*+json":{"schema":{"$ref":"#/components/schemas/AddOrUpdateIntegrationLinkModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/AddOrUpdateIntegrationLinkModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/AddOrUpdateIntegrationLinkModel"}}}},"responses":{"200":{"content":{"application/hal+json":{"schema":{"$ref":"#/components/schemas/IntegrationLinkModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationLinkModel"}}},"description":"When everything is ok, the integration link data returned."},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"summary":"Add or update Integration link","tags":["Integration links"]}},"/v1/environments/{environmentId}/settings/{settingId}/value":{"get":{"description":"This endpoint returns the value of a Feature Flag or Setting \nin a specified Environment identified by the `environmentId` parameter.\n\nThe most important attributes in the response are the `value`, `rolloutRules` and `percentageRules`.\nThe `value` represents what the clients will get when the evaluation requests of our SDKs \nare not matching to any of the defined Targeting or Percentage Rules, or when there are no additional rules to evaluate.\n\nThe `rolloutRules` and `percentageRules` attributes are representing the current \nTargeting and Percentage Rules configuration of the actual Feature Flag or Setting \nin an **ordered** collection, which means the order of the returned rules is matching to the\nevaluation order. You can read more about these rules [here](https://configcat.com/docs/advanced/targeting/).","operationId":"get-setting-value","parameters":[{"description":"The identifier of the Environment.","in":"path","name":"environmentId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The id of the Setting.","in":"path","name":"settingId","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/hal+json":{"schema":{"$ref":"#/components/schemas/SettingValueModel-haljson"}},"application/json":{"schema":{"$ref":"#/components/schemas/SettingValueModel"}}},"description":"When everything is ok, the setting value data returned."},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"summary":"Get value","tags":["Feature Flag & Setting values"]},"patch":{"description":"This endpoint updates the value of a Feature Flag or Setting \nwith a collection of [JSON Patch](http://jsonpatch.com) operations in a specified Environment.\n\nOnly the `value`, `rolloutRules` and `percentageRules` attributes are modifiable by this endpoint.\n\nThe advantage of using JSON Patch is that you can describe individual update operations on a resource\nwithout touching attributes that you don't want to change. It supports collection reordering, so it also \ncan be used for reordering the targeting rules of a Feature Flag or Setting.\n\nFor example: We have the following resource.\n```\n{\n\t\"rolloutPercentageItems\": [\n\t\t{\n\t\t\t\"percentage\": 30,\n\t\t\t\"value\": true\n\t\t},\n\t\t{\n\t\t\t\"percentage\": 70,\n\t\t\t\"value\": false\n\t\t}\n\t],\n\t\"rolloutRules\": [],\n\t\"value\": false\n}\n```\nIf we send an update request body as below:\n```\n[\n\t{\n\t\t\"op\": \"replace\",\n\t\t\"path\": \"/value\",\n\t\t\"value\": true\n\t}\n]\n```\nOnly the default value is going to be set to `true` and all the Percentage Rules are remaining unchanged.\nSo we get a response like this:\n```\n{\n\t\"rolloutPercentageItems\": [\n\t\t{\n\t\t\t\"percentage\": 30,\n\t\t\t\"value\": true\n\t\t},\n\t\t{\n\t\t\t\"percentage\": 70,\n\t\t\t\"value\": false\n\t\t}\n\t],\n\t\"rolloutRules\": [],\n\t\"value\": true\n}\n```\n\nThe `rolloutRules` property describes two types of rules:\n\n- **Targeting rules**: When you want to add or update a targenting rule, the `comparator`, `comparisonAttribute`, and `comparisonValue` members are required.\n- **Segment rules**: When you want to add add or update a segment rule, the `segmentId` which identifies the desired segment and the `segmentComparator` members are required.","operationId":"update-setting-value","parameters":[{"description":"The identifier of the Environment.","in":"path","name":"environmentId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The id of the Setting.","in":"path","name":"settingId","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"The reason note for the Audit Log if the Product's \"Config changes require a reason\" preference is turned on.","in":"query","name":"reason","schema":{"type":"string"}}],"requestBody":{"content":{"application/*+json":{"examples":{"add percentage rules":{"description":"This example adds two items to the percentage evaluation rules.","value":[{"op":"add","path":"/rolloutPercentageItems/-","value":{"percentage":30,"value":true}},{"op":"add","path":"/rolloutPercentageItems/-","value":{"percentage":70,"value":false}}]},"add segment rules":{"description":"This example adds a segment to the evaluation rules.","value":[{"op":"add","path":"/rolloutRules/-","value":{"segmentComparator":"isIn","segmentId":"008a1fd6-8245-4ea8-90dc-a1dc36c1b4ff"}}]},"add targeting rules":{"description":"This example adds two items to the targeting evaluation rules.","value":[{"op":"add","path":"/rolloutRules/-","value":{"comparator":"contains","comparisonAttribute":"Identifier","comparisonValue":"@example.com","value":true}},{"op":"add","path":"/rolloutRules/-","value":{"comparator":"isOneOf","comparisonAttribute":"Identifier","comparisonValue":"@blacklist.com","value":false}}]},"modify targeting rule":{"description":"This example modifies the first targeting rule's comparison value and the second's value.","value":[{"op":"replace","path":"/rolloutRules/0/comparisonValue","value":"@example2.com"},{"op":"replace","path":"/rolloutRules/1/value","value":true}]},"reorder targeting rules":{"description":"This example swaps the first and the second targeting evaluation rule.","value":[{"from":"/rolloutRules/0","op":"move","path":"/rolloutRules/1"}]},"turn on a feature flag":{"description":"This example turns on a feature flag.","value":[{"op":"replace","path":"/value","value":true}]}},"schema":{"$ref":"#/components/schemas/JsonPatch"}},"application/json":{"examples":{"add percentage rules":{"description":"This example adds two items to the percentage evaluation rules.","value":[{"op":"add","path":"/rolloutPercentageItems/-","value":{"percentage":30,"value":true}},{"op":"add","path":"/rolloutPercentageItems/-","value":{"percentage":70,"value":false}}]},"add segment rules":{"description":"This example adds a segment to the evaluation rules.","value":[{"op":"add","path":"/rolloutRules/-","value":{"segmentComparator":"isIn","segmentId":"008a1fd6-8245-4ea8-90dc-a1dc36c1b4ff"}}]},"add targeting rules":{"description":"This example adds two items to the targeting evaluation rules.","value":[{"op":"add","path":"/rolloutRules/-","value":{"comparator":"contains","comparisonAttribute":"Identifier","comparisonValue":"@example.com","value":true}},{"op":"add","path":"/rolloutRules/-","value":{"comparator":"isOneOf","comparisonAttribute":"Identifier","comparisonValue":"@blacklist.com","value":false}}]},"modify targeting rule":{"description":"This example modifies the first targeting rule's comparison value and the second's value.","value":[{"op":"replace","path":"/rolloutRules/0/comparisonValue","value":"@example2.com"},{"op":"replace","path":"/rolloutRules/1/value","value":true}]},"reorder targeting rules":{"description":"This example swaps the first and the second targeting evaluation rule.","value":[{"from":"/rolloutRules/0","op":"move","path":"/rolloutRules/1"}]},"turn on a feature flag":{"description":"This example turns on a feature flag.","value":[{"op":"replace","path":"/value","value":true}]}},"schema":{"$ref":"#/components/schemas/JsonPatch"}},"text/json":{"examples":{"add percentage rules":{"description":"This example adds two items to the percentage evaluation rules.","value":[{"op":"add","path":"/rolloutPercentageItems/-","value":{"percentage":30,"value":true}},{"op":"add","path":"/rolloutPercentageItems/-","value":{"percentage":70,"value":false}}]},"add segment rules":{"description":"This example adds a segment to the evaluation rules.","value":[{"op":"add","path":"/rolloutRules/-","value":{"segmentComparator":"isIn","segmentId":"008a1fd6-8245-4ea8-90dc-a1dc36c1b4ff"}}]},"add targeting rules":{"description":"This example adds two items to the targeting evaluation rules.","value":[{"op":"add","path":"/rolloutRules/-","value":{"comparator":"contains","comparisonAttribute":"Identifier","comparisonValue":"@example.com","value":true}},{"op":"add","path":"/rolloutRules/-","value":{"comparator":"isOneOf","comparisonAttribute":"Identifier","comparisonValue":"@blacklist.com","value":false}}]},"modify targeting rule":{"description":"This example modifies the first targeting rule's comparison value and the second's value.","value":[{"op":"replace","path":"/rolloutRules/0/comparisonValue","value":"@example2.com"},{"op":"replace","path":"/rolloutRules/1/value","value":true}]},"reorder targeting rules":{"description":"This example swaps the first and the second targeting evaluation rule.","value":[{"from":"/rolloutRules/0","op":"move","path":"/rolloutRules/1"}]},"turn on a feature flag":{"description":"This example turns on a feature flag.","value":[{"op":"replace","path":"/value","value":true}]}},"schema":{"$ref":"#/components/schemas/JsonPatch"}}},"required":true},"responses":{"200":{"content":{"application/hal+json":{"schema":{"$ref":"#/components/schemas/SettingValueModel-haljson"}},"application/json":{"schema":{"$ref":"#/components/schemas/SettingValueModel"}}},"description":"When the patch was successful."},"204":{"description":"When no change applied on the resource."},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"summary":"Update value","tags":["Feature Flag & Setting values"]},"put":{"description":"This endpoint replaces the whole value of a Feature Flag or Setting in a specified Environment.\n\nOnly the `value`, `rolloutRules` and `percentageRules` attributes are modifiable by this endpoint.\n\n**Important:** As this endpoint is doing a complete replace, it's important to set every other attribute that you don't \nwant to change in its original state. Not listing one means that it will reset.\n\nFor example: We have the following resource.\n```\n{\n\t\"rolloutPercentageItems\": [\n\t\t{\n\t\t\t\"percentage\": 30,\n\t\t\t\"value\": true\n\t\t},\n\t\t{\n\t\t\t\"percentage\": 70,\n\t\t\t\"value\": false\n\t\t}\n\t],\n\t\"rolloutRules\": [],\n\t\"value\": false\n}\n```\nIf we send a replace request body as below:\n```\n{\n\t\"value\": true\n}\n```\nThen besides that the default value is set to `true`, all the Percentage Rules are deleted. \nSo we get a response like this:\n```\n{\n\t\"rolloutPercentageItems\": [],\n\t\"rolloutRules\": [],\n\t\"value\": true\n}\n```\n\nThe `rolloutRules` property describes two types of rules:\n\n- **Targeting rules**: When you want to add or update a targenting rule, the `comparator`, `comparisonAttribute`, and `comparisonValue` members are required.\n- **Segment rules**: When you want to add add or update a segment rule, the `segmentId` which identifies the desired segment and the `segmentComparator` members are required.","operationId":"replace-setting-value","parameters":[{"description":"The identifier of the Environment.","in":"path","name":"environmentId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The id of the Setting.","in":"path","name":"settingId","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"The reason note for the Audit Log if the Product's \"Config changes require a reason\" preference is turned on.","in":"query","name":"reason","schema":{"type":"string"}}],"requestBody":{"content":{"application/*+json":{"examples":{"advanced":{"description":"This example turns on a feature flag and adds two items to its percentage evaluation rules.","value":{"rolloutPercentageItems":[{"percentage":30,"value":true},{"percentage":70,"value":false}],"value":true}},"simple":{"description":"This example turns on a feature flag.","value":{"value":true}}},"schema":{"$ref":"#/components/schemas/UpdateSettingValueModel"}},"application/json":{"examples":{"advanced":{"description":"This example turns on a feature flag and adds two items to its percentage evaluation rules.","value":{"rolloutPercentageItems":[{"percentage":30,"value":true},{"percentage":70,"value":false}],"value":true}},"simple":{"description":"This example turns on a feature flag.","value":{"value":true}}},"schema":{"$ref":"#/components/schemas/UpdateSettingValueModel"}},"text/json":{"examples":{"advanced":{"description":"This example turns on a feature flag and adds two items to its percentage evaluation rules.","value":{"rolloutPercentageItems":[{"percentage":30,"value":true},{"percentage":70,"value":false}],"value":true}},"simple":{"description":"This example turns on a feature flag.","value":{"value":true}}},"schema":{"$ref":"#/components/schemas/UpdateSettingValueModel"}}},"required":true},"responses":{"200":{"content":{"application/hal+json":{"schema":{"$ref":"#/components/schemas/SettingValueModel-haljson"}},"application/json":{"schema":{"$ref":"#/components/schemas/SettingValueModel"}}},"description":""},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"summary":"Replace value","tags":["Feature Flag & Setting values"]}},"/v1/integrationLink/{integrationLinkType}/{key}/details":{"get":{"description":"","operationId":"get-integration-link-details","parameters":[{"description":"The integration link's type.","in":"path","name":"integrationLinkType","required":true,"schema":{"$ref":"#/components/schemas/IntegrationLinkType"}},{"description":"The key of the integration link.","in":"path","name":"key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/hal+json":{"schema":{"$ref":"#/components/schemas/IntegrationLinkDetailsModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationLinkDetailsModel"}}},"description":"When everything is ok, the details for the integration link returned."},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"summary":"Get Integration link","tags":["Integration links"]}},"/v1/jira/Connect":{"post":{"requestBody":{"content":{"application/*+json":{"schema":{"$ref":"#/components/schemas/ConnectRequest"}},"application/json":{"schema":{"$ref":"#/components/schemas/ConnectRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/ConnectRequest"}}}},"responses":{"200":{"description":"Success"},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"tags":["Integration links"]}},"/v1/jira/environments/{environmentId}/settings/{settingId}/integrationLinks/{key}":{"post":{"operationId":"jira-add-or-update-integration-link","parameters":[{"description":"The identifier of the Environment.","in":"path","name":"environmentId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The id of the Setting.","in":"path","name":"settingId","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"The key of the integration link.","in":"path","name":"key","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/*+json":{"schema":{"$ref":"#/components/schemas/AddOrUpdateJiraIntegrationLinkModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/AddOrUpdateJiraIntegrationLinkModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/AddOrUpdateJiraIntegrationLinkModel"}}}},"responses":{"200":{"content":{"application/hal+json":{"schema":{"$ref":"#/components/schemas/IntegrationLinkModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationLinkModel"}}},"description":"When everything is ok, the integration link data returned."},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"tags":["Integration links"]}},"/v1/me":{"get":{"description":"","operationId":"get-me","responses":{"200":{"content":{"application/hal+json":{"schema":{"$ref":"#/components/schemas/MeModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/MeModel"}}},"description":""},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"summary":"Get authenticated user details","tags":["Me"]}},"/v1/organizations":{"get":{"description":"This endpoint returns the list of the Organizations that belongs to the user.","operationId":"get-organizations","responses":{"200":{"content":{"application/hal+json":{"schema":{"items":{"$ref":"#/components/schemas/OrganizationModel-haljson"},"type":"array"}},"application/json":{"schema":{"items":{"$ref":"#/components/schemas/OrganizationModel"},"type":"array"}}},"description":""},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"summary":"List Organizations","tags":["Organizations"]}},"/v1/organizations/{organizationId}/auditlogs":{"get":{"description":"This endpoint returns the list of Audit log items for a given Organization \nand the result can be optionally filtered by Product and/or Config and/or Environment.","operationId":"get-organization-auditlogs","parameters":[{"description":"The identifier of the Organization.","in":"path","name":"organizationId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The identifier of the Product.","in":"query","name":"productId","schema":{"format":"uuid","type":"string"}},{"description":"The identifier of the Config.","in":"query","name":"configId","schema":{"format":"uuid","type":"string"}},{"description":"The identifier of the Environment.","in":"query","name":"environmentId","schema":{"format":"uuid","type":"string"}},{"description":"Filter Audit logs by Audit log type.","in":"query","name":"auditLogType","schema":{"allOf":[{"$ref":"#/components/schemas/AuditLogType"}],"nullable":true}},{"description":"Filter Audit logs by starting UTC date.","in":"query","name":"fromUtcDateTime","schema":{"format":"date-time","type":"string"}},{"description":"Filter Audit logs by ending UTC date.","in":"query","name":"toUtcDateTime","schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/hal+json":{"schema":{"items":{"$ref":"#/components/schemas/AuditLogItemModel"},"type":"array"}},"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AuditLogItemModel"},"type":"array"}}},"description":""},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"summary":"List Audit log items for Organization","tags":["Audit logs"]}},"/v1/organizations/{organizationId}/members":{"get":{"description":"This endpoint returns the list of Members that belongs \nto the given Organization, identified by the `organizationId` parameter.","operationId":"get-organization-members","parameters":[{"description":"The identifier of the Organization.","in":"path","name":"organizationId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/hal+json":{"schema":{"items":{"$ref":"#/components/schemas/UserModel"},"type":"array"}},"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UserModel"},"type":"array"}}},"description":""},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"summary":"List Organization Members","tags":["Members"]}},"/v1/organizations/{organizationId}/members/{userId}":{"delete":{"description":"This endpoint removes a Member identified by the `userId` from the \ngiven Organization identified by the `organizationId` parameter.","operationId":"delete-organization-member","parameters":[{"description":"The identifier of the Organization.","in":"path","name":"organizationId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The identifier of the Member.","in":"path","name":"userId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"When the delete was successful."},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"summary":"Delete Member from Organization","tags":["Members"]},"post":{"description":"This endpoint adds a Member identified by the `userId` to one or more Permission Groups. \nThis endpoint can also be used to move a Member between Permission Groups within a Product.\nOnly a single Permission Group can be set per Product.","operationId":"add-member-to-group","parameters":[{"description":"The identifier of the Organization.","in":"path","name":"organizationId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The identifier of the Member.","in":"path","name":"userId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/*+json":{"schema":{"$ref":"#/components/schemas/AddUserToGroupRequest"}},"application/json":{"schema":{"$ref":"#/components/schemas/AddUserToGroupRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/AddUserToGroupRequest"}}},"required":true},"responses":{"200":{"description":"When the addition was successful."},"400":{"description":"Bad request."},"401":{"description":"Unauthorized. In case of the Public Management API credentials are invalid."},"404":{"description":"Not found."},"429":{"description":"Too many requests. In case of the request rate exceeds the rate limits."}},"summary":"Update Member Permissions","tags":["Members"]}},"/v1/organizations/{organizationId}/products":{"post":{"description":"This en