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

    If you prefer the swagger documentation, you can find it here: [Swagger UI](https://api.configcat.com/swagger).

    The purpose of this API is to access the ConfigCat platform programmatically. 
    You can **Create**, **Read**, **Update** and **Delete** any entities like **Feature Flags, Configs, Environments** or **Products** within ConfigCat. 

    The API is based on HTTP REST, uses resource-oriented URLs, status codes and supports JSON 
    and 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).


    # OpenAPI Specification

    The complete specification is publicly available here: [swagger.json](v1/swagger.json). 
    You can use it to generate client libraries in various languages with [OpenAPI Generator](https://github.com/OpenAPITools/openapi-generator) or
    [Swagger Codegen](https://swagger.io/tools/swagger-codegen/) to interact with this API.

    # Authentication
    This API uses the [Basic HTTP Authentication Scheme](https://en.wikipedia.org/wiki/Basic_access_authentication). 

    <!-- ReDoc-Inject: <security-definitions> -->

    # Throttling and rate limits
    All the rate limited API calls are returning information about the current rate limit period in the following HTTP headers:

    | Header | Description |
    | :- | :- |
    | X-Rate-Limit-Remaining | The maximum number of requests remaining in the current rate limit period. |
    | X-Rate-Limit-Reset     | The time	when the current rate limit period resets.						  |

    When 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.
  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. 
      You can turn Feature Flags on or off, update Setting values and also add, remove or change the order of Percentage and Targeting Rules.

      These 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
      the `X-CONFIGCAT-SDKKEY` request header. To identify the desired Feature Flag or Setting to change, 
      you can use either its `settingId` or `key` attribute. You can get those attributes 
      from 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. 
      You can turn Feature Flags on or off, update Setting values and also add, remove or reorder Percentage and Targeting Rules.

      To determine which Feature Flag or Setting you want to work with you have to pass its `settingId`. It can be
      obtained from the [Feature Flag & Setting](#tag/Feature-Flags-and-Settings) endpoints.

      You also have to specify in which Environment you want to change the served value configuration by its
      `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. 
      However you can't use them for manipulating the values of your Feature Flags and Settings,
      to do that please visit the [Feature Flag & Setting values using SDK Key](#tag/Feature-Flag-and-Setting-values-using-SDK-Key)
      and [Feature Flag & Setting values](#tag/Feature-Flag-and-Setting-values) sections of the API.

      For using these endpoints, first you have to select which Config you want to work with by its `configId` 
      which can be obtained from the [List Configs](#operation/get-configs) endpoint. 
      Then you can use it to create new Feature Flags or to get information about existing ones.

      Then you can obtain the `settingId` or `key` of your desired Feature Flag or Setting 
      to use them for further operations in this API. 

      <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.
      This also can be used to manage your [Products](#tag/Products).

      <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.

      <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.

      <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.
      This also can be used to manage [Environments](#tag/Environments), [Configs](#tag/Configs), [Tags](#tag/Tags) and [Permission Groups](#tag/Permission-Groups) through this API.

      <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.
      This also can be used to manage [Feature Flags and Settings](#tag/Feature-Flags-and-Settings) and their 
      [served values](#tag/Feature-Flag-and-Setting-values) through this API.

      <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). 

      <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.
      Segments 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.

      <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
        identified 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
        in a specified Environment identified by the `environmentId` parameter.

        The most important attributes in the response are the `value`, `rolloutRules` and `percentageRules`.
        The `value` represents what the clients will get when the evaluation requests of our SDKs 
        are not matching to any of the defined Targeting or Percentage Rules, or when there are no additional rules to evaluate.

        The `rolloutRules` and `percentageRules` attributes are representing the current 
        Targeting and Percentage Rules configuration of the actual Feature Flag or Setting 
        in an **ordered** collection, which means the order of the returned rules is matching to the
        evaluation 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
        in a specified Environment identified by the `environmentId` parameter.

        Only the `value`, `rolloutRules` and `percentageRules` attributes are modifiable by this endpoint.

        **Important:** As this endpoint is doing a complete replace, it's important to set every other attribute that you don't 
        want to change in its original state. Not listing one means that it will reset.

        For example: We have the following resource.
        ```
        {
            "settingValues": [
        		{
        			"rolloutPercentageItems": [
        				{
        					"percentage": 30,
        					"value": true
        				},
        				{
        					"percentage": 70,
        					"value": false
        				}
        			],
        			"rolloutRules": [],
        			"value": false,
        			"settingId": 1
        		}
        	]
        }
        ```
        If we send a replace request body as below:
        ```
        { 
        	"settingValues": [
        		{
        			"value": true,
        			"settingId": 1
        		}
        	]
        }
        ```
        Then besides that the default value is set to `true`, all the Percentage Rules are deleted. 
        So we get a response like this:
        ```
        {
        	"settingValues": [
        		{
        			"rolloutPercentageItems": [],
        			"rolloutRules": [],
        			"value": true,
        			"setting": 
        			{
        				"settingId": 1
        			}
        		}
        	]
        }
        ```

        The `rolloutRules` property describes two types of rules:

        - **Targeting rules**: When you want to add or update a targenting rule, the `comparator`, `comparisonAttribute`, and `comparisonValue` members are required.
        - **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 
        specified 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
        identified by the `configId` parameter.

        **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 
        identified 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 
        in a specified Environment identified by the `environmentId` parameter.

        The most important attributes in the response are the `value`, `rolloutRules` and `percentageRules`.
        The `value` represents what the clients will get when the evaluation requests of our SDKs 
        are not matching to any of the defined Targeting or Percentage Rules, or when there are no additional rules to evaluate.

        The `rolloutRules` and `percentageRules` attributes are representing the current 
        Targeting and Percentage Rules configuration of the actual Feature Flag or Setting 
        in an **ordered** collection, which means the order of the returned rules is matching to the
        evaluation 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 
        with a collection of [JSON Patch](http://jsonpatch.com) operations in a specified Environment.

        Only the `value`, `rolloutRules` and `percentageRules` attributes are modifiable by this endpoint.

        The advantage of using JSON Patch is that you can describe individual update operations on a resource
        without touching attributes that you don't want to change. It supports collection reordering, so it also 
        can be used for reordering the targeting rules of a Feature Flag or Setting.

        For example: We have the following resource.
        ```
        {
        	"rolloutPercentageItems": [
        		{
        			"percentage": 30,
        			"value": true
        		},
        		{
        			"percentage": 70,
        			"value": false
        		}
        	],
        	"rolloutRules": [],
        	"value": false
        }
        ```
        If we send an update request body as below:
        ```
        [
        	{
        		"op": "replace",
        		"path": "/value",
        		"value": true
        	}
        ]
        ```
        Only the default value is going to be set to `true` and all the Percentage Rules are remaining unchanged.
        So we get a response like this:
        ```
        {
        	"rolloutPercentageItems": [
        		{
        			"percentage": 30,
        			"value": true
        		},
        		{
        			"percentage": 70,
        			"value": false
        		}
        	],
        	"rolloutRules": [],
        	"value": true
        }
        ```

        The `rolloutRules` property describes two types of rules:

        - **Targeting rules**: When you want to add or update a targenting rule, the `comparator`, `comparisonAttribute`, and `comparisonValue` members are required.
        - **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.

        Only the `value`, `rolloutRules` and `percentageRules` attributes are modifiable by this endpoint.

        **Important:** As this endpoint is doing a complete replace, it's important to set every other attribute that you don't 
        want to change in its original state. Not listing one means that it will reset.

        For example: We have the following resource.
        ```
        {
        	"rolloutPercentageItems": [
        		{
        			"percentage": 30,
        			"value": true
        		},
        		{
        			"percentage": 70,
        			"value": false
        		}
        	],
        	"rolloutRules": [],
        	"value": false
        }
        ```
        If we send a replace request body as below:
        ```
        {
        	"value": true
        }
        ```
        Then besides that the default value is set to `true`, all the Percentage Rules are deleted. 
        So we get a response like this:
        ```
        {
        	"rolloutPercentageItems": [],
        	"rolloutRules": [],
        	"value": true
        }
        ```

        The `rolloutRules` property describes two types of rules:

        - **Targeting rules**: When you want to add or update a targenting rule, the `comparator`, `comparisonAttribute`, and `comparisonValue` members are required.
        - **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 
        and 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 
        to 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 
        given 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. 
        This endpoint can also be used to move a Member between Permission Groups within a Product.
        Only 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 endpoint creates a new Product in a specified Organization 
        identified by the `organizationId` parameter, which can be obtained from the [List Organizations](#operation/get-organizations) endpoint.
      operationId: create-product
      parameters:
        - description: The identifier of the Organization.
          in: path
          name: organizationId
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CreateProductRequest"
          application/json:
            schema:
              $ref: "#/components/schemas/CreateProductRequest"
          text/json:
            schema:
              $ref: "#/components/schemas/CreateProductRequest"
        required: true
      responses:
        "201":
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/ProductModel-haljson"
            application/json:
              schema:
                $ref: "#/components/schemas/ProductModel"
          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 Product
      tags:
        - Products
  "/v1/permissions/{permissionGroupId}":
    delete:
      description: This endpoint removes a Permission Group identified by the `permissionGroupId` parameter.
      operationId: delete-permission-group
      parameters:
        - description: The identifier of the Permission Group.
          in: path
          name: permissionGroupId
          required: true
          schema:
            format: int64
            type: integer
      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 Permission Group
      tags:
        - Permission Groups
    get:
      description: |-
        This endpoint returns the metadata of a Permission Group 
        identified by the `permissionGroupId`.
      operationId: get-permission-group
      parameters:
        - description: The identifier of the Permission Group.
          in: path
          name: permissionGroupId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/PermissionGroupModel-haljson"
            application/json:
              schema:
                $ref: "#/components/schemas/PermissionGroupModel"
          description: When everything is ok, the permission group 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 Permission Group
      tags:
        - Permission Groups
    put:
      description: This endpoint updates a Permission Group identified by the `permissionGroupId` parameter.
      operationId: update-permission-group
      parameters:
        - description: The identifier of the Permission Group.
          in: path
          name: permissionGroupId
          required: true
          schema:
            format: int64
            type: integer
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/UpdatePermissionGroupRequest"
          application/json:
            schema:
              $ref: "#/components/schemas/UpdatePermissionGroupRequest"
          text/json:
            schema:
              $ref: "#/components/schemas/UpdatePermissionGroupRequest"
        required: true
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/PermissionGroupModel-haljson"
            application/json:
              schema:
                $ref: "#/components/schemas/PermissionGroupModel"
          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 Permission Group
      tags:
        - Permission Groups
  /v1/products:
    get:
      description: This endpoint returns the list of the Products that belongs to the user.
      operationId: get-products
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                items:
                  $ref: "#/components/schemas/ProductModel-haljson"
                type: array
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ProductModel"
                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 Products
      tags:
        - Products
  "/v1/products/{productId}":
    delete:
      description: This endpoint removes a Product identified by the `productId` parameter.
      operationId: delete-product
      parameters:
        - description: The identifier of the Product.
          in: path
          name: productId
          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 Product
      tags:
        - Products
    get:
      description: |-
        This endpoint returns the metadata of a Product 
        identified by the `productId`.
      operationId: get-product
      parameters:
        - description: The identifier of the Product.
          in: path
          name: productId
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/ProductModel-haljson"
            application/json:
              schema:
                $ref: "#/components/schemas/ProductModel"
          description: When everything is ok, the product 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 Product
      tags:
        - Products
    put:
      description: This endpoint updates a Product identified by the `productId` parameter.
      operationId: update-product
      parameters:
        - description: The identifier of the Product.
          in: path
          name: productId
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/UpdateProductRequest"
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateProductRequest"
          text/json:
            schema:
              $ref: "#/components/schemas/UpdateProductRequest"
        required: true
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/ProductModel-haljson"
            application/json:
              schema:
                $ref: "#/components/schemas/ProductModel"
          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 Product
      tags:
        - Products
  "/v1/products/{productId}/auditlogs":
    get:
      description: |-
        This endpoint returns the list of Audit log items for a given Product 
        and the result can be optionally filtered by Config and/or Environment.
      operationId: get-auditlogs
      parameters:
        - description: The identifier of the Product.
          in: path
          name: productId
          required: true
          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 Product
      tags:
        - Audit logs
  "/v1/products/{productId}/configs":
    get:
      description: |-
        This endpoint returns the list of the Configs that belongs to the given Product identified by the
        `productId` parameter, which can be obtained from the [List Products](#operation/get-products) endpoint.
      operationId: get-configs
      parameters:
        - description: The identifier of the Product.
          in: path
          name: productId
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                items:
                  $ref: "#/components/schemas/ConfigModel-haljson"
                type: array
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ConfigModel"
                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 Configs
      tags:
        - Configs
    post:
      description: |-
        This endpoint creates a new Config in a specified Product 
        identified by the `productId` parameter, which can be obtained from the [List Products](#operation/get-products) endpoint.
      operationId: create-config
      parameters:
        - description: The identifier of the Product.
          in: path
          name: productId
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CreateConfigRequest"
          application/json:
            schema:
              $ref: "#/components/schemas/CreateConfigRequest"
          text/json:
            schema:
              $ref: "#/components/schemas/CreateConfigRequest"
        required: true
      responses:
        "201":
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/ConfigModel-haljson"
            application/json:
              schema:
                $ref: "#/components/schemas/ConfigModel"
          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 Config
      tags:
        - Configs
  "/v1/products/{productId}/environments":
    get:
      description: |-
        This endpoint returns the list of the Environments that belongs to the given Product identified by the
        `productId` parameter, which can be obtained from the [List Products](#operation/get-products) endpoint.
      operationId: get-environments
      parameters:
        - description: The identifier of the Product.
          in: path
          name: productId
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                items:
                  $ref: "#/components/schemas/EnvironmentModel-haljson"
                type: array
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/EnvironmentModel"
                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 Environments
      tags:
        - Environments
    post:
      description: |-
        This endpoint creates a new Environment in a specified Product 
        identified by the `productId` parameter, which can be obtained from the [List Products](#operation/get-products) endpoint.
      operationId: create-environment
      parameters:
        - description: The identifier of the Product.
          in: path
          name: productId
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CreateEnvironmentModel"
          application/json:
            schema:
              $ref: "#/components/schemas/CreateEnvironmentModel"
          text/json:
            schema:
              $ref: "#/components/schemas/CreateEnvironmentModel"
        required: true
      responses:
        "201":
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/EnvironmentModel-haljson"
            application/json:
              schema:
                $ref: "#/components/schemas/EnvironmentModel"
          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 Environment
      tags:
        - Environments
  "/v1/products/{productId}/members":
    get:
      description: |-
        This endpoint returns the list of Members that belongs 
        to the given Product, identified by the `productId` parameter.
      operationId: get-product-members
      parameters:
        - description: The identifier of the Product.
          in: path
          name: productId
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                items:
                  $ref: "#/components/schemas/MemberModel"
                type: array
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/MemberModel"
                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 Product Members
      tags:
        - Members
  "/v1/products/{productId}/members/invite":
    post:
      description: This endpoint invites a Member into the given Product identified by the `productId` parameter.
      operationId: invite-member
      parameters:
        - description: The identifier of the Product.
          in: path
          name: productId
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/InviteMembersRequest"
          application/json:
            schema:
              $ref: "#/components/schemas/InviteMembersRequest"
          text/json:
            schema:
              $ref: "#/components/schemas/InviteMembersRequest"
        required: true
      responses:
        "200":
          description: When the invite 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: Invite Member
      tags:
        - Members
  "/v1/products/{productId}/members/{userId}":
    delete:
      description: |-
        This endpoint removes a Member identified by the `userId` from the 
        given Product identified by the `productId` parameter.
      operationId: delete-product-member
      parameters:
        - description: The identifier of the Product.
          in: path
          name: productId
          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 Product
      tags:
        - Members
  "/v1/products/{productId}/permissions":
    get:
      description: |-
        This endpoint returns the list of the Permission Groups that belongs to the given Product identified by the
        `productId` parameter, which can be obtained from the [List Products](#operation/get-products) endpoint.
      operationId: get-permission-groups
      parameters:
        - description: The identifier of the Product.
          in: path
          name: productId
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                items:
                  $ref: "#/components/schemas/PermissionGroupModel-haljson"
                type: array
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/PermissionGroupModel"
                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 Permission Groups
      tags:
        - Permission Groups
    post:
      description: |-
        This endpoint creates a new Permission Group in a specified Product 
        identified by the `productId` parameter, which can be obtained from the [List Products](#operation/get-products) endpoint.
      operationId: create-permission-group
      parameters:
        - description: The identifier of the Product.
          in: path
          name: productId
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CreatePermissionGroupRequest"
          application/json:
            schema:
              $ref: "#/components/schemas/CreatePermissionGroupRequest"
          text/json:
            schema:
              $ref: "#/components/schemas/CreatePermissionGroupRequest"
        required: true
      responses:
        "201":
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/PermissionGroupModel-haljson"
            application/json:
              schema:
                $ref: "#/components/schemas/PermissionGroupModel"
          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 Permission Group
      tags:
        - Permission Groups
  "/v1/products/{productId}/segments":
    get:
      description: |-
        This endpoint returns the list of the Segments that belongs to the given Product identified by the
        `productId` parameter, which can be obtained from the [List Products](#operation/get-products) endpoint.
      operationId: get-segments
      parameters:
        - description: The identifier of the Product.
          in: path
          name: productId
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                items:
                  $ref: "#/components/schemas/SegmentListModel-haljson"
                type: array
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/SegmentListModel"
                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 Segments
      tags:
        - Segments
    post:
      description: |-
        This endpoint creates a new Segment in a specified Product 
        identified by the `productId` parameter, which can be obtained from the [List Products](#operation/get-products) endpoint.
      operationId: create-segment
      parameters:
        - description: The identifier of the Product.
          in: path
          name: productId
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CreateSegmentModel"
          application/json:
            schema:
              $ref: "#/components/schemas/CreateSegmentModel"
          text/json:
            schema:
              $ref: "#/components/schemas/CreateSegmentModel"
        required: true
      responses:
        "201":
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/SegmentModel-haljson"
            application/json:
              schema:
                $ref: "#/components/schemas/SegmentModel"
          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 Segment
      tags:
        - Segments
  "/v1/products/{productId}/tags":
    get:
      description: |-
        This endpoint returns the list of the Tags in a 
        specified Product, identified by the `productId` parameter.
      operationId: get-tags
      parameters:
        - description: The identifier of the Product.
          in: path
          name: productId
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                items:
                  $ref: "#/components/schemas/TagModel-haljson"
                type: array
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/TagModel"
                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 Tags
      tags:
        - Tags
    post:
      description: |-
        This endpoint creates a new Tag in a specified Product 
        identified by the `productId` parameter, which can be obtained from the [List Products](#operation/get-products) endpoint.
      operationId: create-tag
      parameters:
        - description: The identifier of the Organization.
          in: path
          name: productId
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CreateTagModel"
          application/json:
            schema:
              $ref: "#/components/schemas/CreateTagModel"
          text/json:
            schema:
              $ref: "#/components/schemas/CreateTagModel"
        required: true
      responses:
        "201":
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/TagModel-haljson"
            application/json:
              schema:
                $ref: "#/components/schemas/TagModel"
          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 Tag
      tags:
        - Tags
  "/v1/segments/{segmentId}":
    delete:
      description: This endpoint removes a Segment identified by the `segmentId` parameter.
      operationId: delete-segment
      parameters:
        - description: The identifier of the Segment.
          in: path
          name: segmentId
          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 Segment
      tags:
        - Segments
    get:
      description: |-
        This endpoint returns the metadata of a Segment
        identified by the `segmentId`.
      operationId: get-segment
      parameters:
        - description: The identifier of the Segment.
          in: path
          name: segmentId
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/SegmentModel-haljson"
            application/json:
              schema:
                $ref: "#/components/schemas/SegmentModel"
          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 Segment
      tags:
        - Segments
    put:
      description: This endpoint updates a Segment identified by the `segmentId` parameter.
      operationId: update-segment
      parameters:
        - description: The identifier of the Segment.
          in: path
          name: segmentId
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/UpdateSegmentModel"
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateSegmentModel"
          text/json:
            schema:
              $ref: "#/components/schemas/UpdateSegmentModel"
        required: true
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/SegmentModel-haljson"
            application/json:
              schema:
                $ref: "#/components/schemas/SegmentModel"
          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 Segment
      tags:
        - Segments
  "/v1/settings/{settingId}":
    delete:
      description: |-
        This endpoint removes a Feature Flag or Setting from a specified Config, 
        identified by the `configId` parameter.
      operationId: delete-setting
      parameters:
        - description: The identifier of the Setting.
          in: path
          name: settingId
          required: true
          schema:
            format: int32
            type: integer
      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 Flag
      tags:
        - Feature Flags & Settings
    get:
      description: |-
        This endpoint returns the metadata attributes of a Feature Flag or Setting 
        identified by the `settingId` parameter.
      operationId: get-setting
      parameters:
        - description: The identifier of the Setting.
          in: path
          name: settingId
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/SettingModel-haljson"
            application/json:
              schema:
                $ref: "#/components/schemas/SettingModel"
          description: When everything is ok, the setting 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 Flag
      tags:
        - Feature Flags & Settings
    patch:
      description: |-
        This endpoint updates the metadata of a Feature Flag or Setting 
        with a collection of [JSON Patch](http://jsonpatch.com) operations in a specified Config.

        Only the `name`, `hint` and `tags` attributes are modifiable by this endpoint.
        The `tags` attribute is a simple collection of the [tag IDs](#operation/get-tags) attached to the given setting.

        The advantage of using JSON Patch is that you can describe individual update operations on a resource
        without touching attributes that you don't want to change.

        For example: We have the following resource.
        ```
        {
        	"settingId": 5345,
        	"key": "myGrandFeature",
        	"name": "Tihs is a naem with soem typos.",
        	"hint": "This flag controls my grandioso feature.",
        	"settingType": "boolean",
        	"tags": [
        		{
        			"tagId": 0,
        			"name": "sample tag",
        			"color": "whale"
        		}
        	]
        }
        ```
        If we send an update request body as below (it changes the name and adds the already existing tag with the id 2):
        ```
        [
        	{
        		"op": "replace",
        		"path": "/name",
        		"value": "This is the name without typos."
        	},
        	{
        		"op": "add",
        		"path": "/tags/-",
        		"value": 2
        	}
        ]
        ```
        Only the `name` and `tags` are going to be updated and all the other attributes are remaining unchanged.
        So we get a response like this:
        ```
        {
        	"settingId": 5345,
        	"key": "myGrandFeature",
        	"name": "This is the name without typos.",
        	"hint": "This flag controls my grandioso feature.",
        	"settingType": "boolean",
        	"tags": [
        		{
        			"tagId": 0,
        			"name": "sample tag",
        			"color": "whale"
        		},
        		{
        			"tagId": 2,
        			"name": "another tag",
        			"color": "koala"
        		}
        	]
        }
        ```
      operationId: update-setting
      parameters:
        - description: The identifier of the Setting.
          in: path
          name: settingId
          required: true
          schema:
            format: int32
            type: integer
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/JsonPatch"
          application/json:
            schema:
              $ref: "#/components/schemas/JsonPatch"
          text/json:
            schema:
              $ref: "#/components/schemas/JsonPatch"
        required: true
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/SettingModel-haljson"
            application/json:
              schema:
                $ref: "#/components/schemas/SettingModel"
          description: When the update 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 Flag
      tags:
        - Feature Flags & Settings
  "/v1/settings/{settingKeyOrId}/value":
    get:
      description: |-
        This endpoint returns the value of a Feature Flag or Setting 
        in a specified Environment identified by the <a target="_blank" rel="noopener noreferrer" href="https://app.configcat.com/sdkkey">SDK key</a> passed in the `X-CONFIGCAT-SDKKEY` header.

        The most important attributes in the response are the `value`, `rolloutRules` and `percentageRules`.
        The `value` represents what the clients will get when the evaluation requests of our SDKs 
        are not matching to any of the defined Targeting or Percentage Rules, or when there are no additional rules to evaluate.

        The `rolloutRules` and `percentageRules` attributes are representing the current 
        Targeting and Percentage Rules configuration of the actual Feature Flag or Setting 
        in an **ordered** collection, which means the order of the returned rules is matching to the
        evaluation order. You can read more about these rules [here](https://configcat.com/docs/advanced/targeting/).
      operationId: get-setting-value-by-sdkkey
      parameters:
        - description: The key or id of the Setting.
          in: path
          name: settingKeyOrId
          required: true
          schema:
            type: string
        - description: The ConfigCat SDK Key. (https://app.configcat.com/sdkkey)
          in: header
          name: X-CONFIGCAT-SDKKEY
          schema:
            type: string
      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: Get value
      tags:
        - Feature Flag & Setting values using SDK Key
    patch:
      description: |-
        This endpoint updates the value of a Feature Flag or Setting 
        with a collection of [JSON Patch](http://jsonpatch.com) operations in a specified Environment
        identified by the <a target="_blank" rel="noopener noreferrer" href="https://app.configcat.com/sdkkey">SDK key</a> passed in the `X-CONFIGCAT-SDKKEY` header.

        Only the `value`, `rolloutRules` and `percentageRules` attributes are modifiable by this endpoint.

        The advantage of using JSON Patch is that you can describe individual update operations on a resource
        without touching attributes that you don't want to change. It supports collection reordering, so it also 
        can be used for reordering the targeting rules of a Feature Flag or Setting.

        For example: We have the following resource.
        ```
        {
        	"rolloutPercentageItems": [
        		{
        			"percentage": 30,
        			"value": true
        		},
        		{
        			"percentage": 70,
        			"value": false
        		}
        	],
        	"rolloutRules": [],
        	"value": false
        }
        ```
        If we send an update request body as below:
        ```
        [
        	{
        		"op": "replace",
        		"path": "/value",
        		"value": true
        	}
        ]
        ```
        Only the default served value is going to be set to `true` and all the Percentage Rules are remaining unchanged.
        So we get a response like this:
        ```
        {
        	"rolloutPercentageItems": [
        		{
        			"percentage": 30,
        			"value": true
        		},
        		{
        			"percentage": 70,
        			"value": false
        		}
        	],
        	"rolloutRules": [],
        	"value": true
        }
        ```
      operationId: update-setting-value-by-sdkkey
      parameters:
        - description: The key or id of the Setting.
          in: path
          name: settingKeyOrId
          required: true
          schema:
            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
        - description: The ConfigCat SDK Key. (https://app.configcat.com/sdkkey)
          in: header
          name: X-CONFIGCAT-SDKKEY
          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: ""
        "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 using SDK Key
    put:
      description: |-
        This endpoint replaces the value of a Feature Flag or Setting 
        in a specified Environment identified by the <a target="_blank" rel="noopener noreferrer" href="https://app.configcat.com/sdkkey">SDK key</a> passed in the `X-CONFIGCAT-SDKKEY` header.

        Only the `value`, `rolloutRules` and `percentageRules` attributes are modifiable by this endpoint.

        **Important:** As this endpoint is doing a complete replace, it's important to set every other attribute that you don't 
        want to change to its original state. Not listing one means that it will reset.

        For example: We have the following resource.
        ```
        {
        	"rolloutPercentageItems": [
        		{
        			"percentage": 30,
        			"value": true
        		},
        		{
        			"percentage": 70,
        			"value": false
        		}
        	],
        	"rolloutRules": [],
        	"value": false
        }
        ```
        If we send a replace request body as below:
        ```
        {
        	"value": true
        }
        ```
        Then besides that the default served value is set to `true`, all the Percentage Rules are deleted. 
        So we get a response like this:
        ```
        {
        	"rolloutPercentageItems": [],
        	"rolloutRules": [],
        	"value": true
        }
        ```
      operationId: replace-setting-value-by-sdkkey
      parameters:
        - description: The key or id of the Setting.
          in: path
          name: settingKeyOrId
          required: true
          schema:
            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
        - description: The ConfigCat SDK Key. (https://app.configcat.com/sdkkey)
          in: header
          name: X-CONFIGCAT-SDKKEY
          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 using SDK Key
  "/v1/tags/{tagId}":
    delete:
      description: This endpoint deletes a Tag identified by the `tagId` parameter. To remove a Tag from a Feature Flag or Setting use the [Update Flag](#operation/update-setting) endpoint.
      operationId: delete-tag
      parameters:
        - description: The identifier of the Tag.
          in: path
          name: tagId
          required: true
          schema:
            format: int64
            type: integer
      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 Tag
      tags:
        - Tags
    get:
      description: |-
        This endpoint returns the metadata of a Tag 
        identified by the `tagId`.
      operationId: get-tag
      parameters:
        - description: The identifier of the Tag.
          in: path
          name: tagId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/TagModel-haljson"
            application/json:
              schema:
                $ref: "#/components/schemas/TagModel"
          description: When everything is ok, the tag 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 Tag
      tags:
        - Tags
    put:
      description: This endpoint updates a Tag identified by the `tagId` parameter.
      operationId: update-tag
      parameters:
        - description: The identifier of the Tag.
          in: path
          name: tagId
          required: true
          schema:
            format: int64
            type: integer
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/UpdateTagModel"
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateTagModel"
          text/json:
            schema:
              $ref: "#/components/schemas/UpdateTagModel"
        required: true
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/TagModel-haljson"
            application/json:
              schema:
                $ref: "#/components/schemas/TagModel"
          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 Tag
      tags:
        - Tags
  "/v1/tags/{tagId}/settings":
    get:
      description: |-
        This endpoint returns the list of the Settings that 
        has the specified Tag, identified by the `tagId` parameter.
      operationId: get-settings-by-tag
      parameters:
        - description: The identifier of the Tag.
          in: path
          name: tagId
          required: true
          schema:
            format: int64
            type: integer
      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: When everything is ok, the settings 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: List Settings by Tag
      tags:
        - Tags
components:
  schemas:
    AccessType:
      enum:
        - readOnly
        - full
        - custom
      type: string
    AddOrUpdateIntegrationLinkModel:
      additionalProperties: false
      properties:
        description:
          maxLength: 1000
          nullable: true
          type: string
        url:
          maxLength: 1000
          nullable: true
          type: string
      type: object
    AddOrUpdateJiraIntegrationLinkModel:
      additionalProperties: false
      properties:
        clientKey:
          maxLength: 255
          minLength: 0
          type: string
        description:
          maxLength: 1000
          minLength: 0
          nullable: true
          type: string
        jiraJwtToken:
          maxLength: 15000
          minLength: 0
          type: string
        url:
          maxLength: 1000
          minLength: 0
          nullable: true
          type: string
      required:
        - clientKey
        - jiraJwtToken
      type: object
    AddUserToGroupRequest:
      additionalProperties: false
      properties:
        permissionGroupIds:
          items:
            format: int64
            type: integer
          type: array
      required:
        - permissionGroupIds
      type: object
    AuditLogItemModel:
      additionalProperties: false
      properties:
        actionTarget:
          nullable: true
          type: string
        auditLogDateTime:
          format: date-time
          type: string
        auditLogId:
          format: int64
          type: integer
        auditLogType:
          nullable: true
          type: string
        auditLogTypeEnum:
          $ref: "#/components/schemas/AuditLogType"
        details:
          nullable: true
          type: string
        userEmail:
          nullable: true
          type: string
        userName:
          nullable: true
          type: string
        where:
          nullable: true
          type: string
        why:
          nullable: true
          type: string
      type: object
    AuditLogType:
      enum:
        - productCreated
        - productChanged
        - productOwnershipTransferred
        - productDeleted
        - productsReordered
        - teamMemberInvited
        - teamMemberInvitationRevoked
        - teamMemberJoined
        - teamMemberPermissionGroupChanged
        - teamMemberRemoved
        - teamMemberLeft
        - teamMemberInvitationChanged
        - teamMemberInvitationResent
        - teamMemberInvitationRejected
        - configCreated
        - configChanged
        - configDeleted
        - configsReordered
        - environmentCreated
        - environmentChanged
        - environmentDeleted
        - environmentsReordered
        - settingCreated
        - settingChanged
        - settingDeleted
        - settingsReordered
        - settingValueChanged
        - webHookCreated
        - webHookChanged
        - webHookDeleted
        - subscriptionChanged
        - permissionGroupCreated
        - permissionGroupChanged
        - permissionGroupDeleted
        - permissionGroupDefault
        - apiKeyAdded
        - apiKeyRemoved
        - integrationAdded
        - integrationChanged
        - integrationRemoved
        - apiKeyConnected
        - integrationLinkAdded
        - integrationLinkRemoved
        - organizationAdded
        - organizationRemoved
        - organizationChanged
        - organizationSubscriptionTypeChanged
        - organizationAdminChanged
        - organizationAdminLeft
        - organizationAdminDisabled2FA
        - tagAdded
        - tagChanged
        - tagRemoved
        - settingTagAdded
        - settingTagRemoved
        - publicApiAccessTokenAdded
        - publicApiAccessTokenRemoved
        - domainAdded
        - domainVerified
        - domainRemoved
        - domainSamlConfigured
        - domainSamlDeleted
        - autoProvisioningConfigurationChanged
        - organizationMemberJoined
        - organizationMemberProductJoinRequested
        - organizationMemberProductJoinRequestRejected
        - organizationMemberProductJoinRequestApproved
        - codeReferencesUploaded
        - codeReferenceDeleted
        - codeReferenceStaleBranchDeleted
        - segmentCreated
        - segmentChanged
        - segmentDeleted
        - webhookSigningKeyDeleted
        - webhookSigningKeyCreated
      type: string
    CodeReferenceRequest:
      additionalProperties: false
      properties:
        activeBranches:
          description: The currently active branches of the repository. Each previously uploaded report that belongs to a non-reported active branch is being deleted.
          items:
            type: string
          nullable: true
          type: array
        branch:
          description: The source control branch on where the scan was performed. (Source of the branch selector on the ConfigCat Dashboard)
          maxLength: 255
          minLength: 0
          type: string
        commitHash:
          description: The related commit's hash. (Appears on the ConfigCat Dashboard)
          maxLength: 255
          minLength: 0
          nullable: true
          type: string
        commitUrl:
          description: The related commit's URL. (Appears on the ConfigCat Dashboard)
          maxLength: 1000
          minLength: 0
          nullable: true
          type: string
        configId:
          description: The Config's identifier the scanning was performed against.
          format: uuid
          type: string
        flagReferences:
          description: The actual code reference collection.
          items:
            $ref: "#/components/schemas/FlagReference"
          nullable: true
          type: array
        repository:
          description: The source control repository that contains the scanned code. (Source of the repository selector on the ConfigCat Dashboard)
          maxLength: 255
          minLength: 0
          type: string
        uploader:
          description: The scanning tool's name. (Appears on the ConfigCat Dashboard)
          maxLength: 255
          minLength: 0
          nullable: true
          type: string
      required:
        - branch
        - configId
        - repository
      type: object
    ConfigModel:
      additionalProperties: false
      properties:
        configId:
          format: uuid
          type: string
        description:
          nullable: true
          type: string
        name:
          nullable: true
          type: string
        order:
          format: int32
          type: integer
        product:
          $ref: "#/components/schemas/ProductModel"
      type: object
    ConfigModel-haljson:
      properties:
        _embedded:
          properties:
            product:
              properties:
                _embedded:
                  properties:
                    organization:
                      properties:
                        _links:
                          properties:
                            members:
                              type: string
                            products:
                              type: string
                          type: object
                        name:
                          nullable: true
                          type: string
                        organizationId:
                          format: uuid
                          type: string
                      type: object
                  type: object
                _links:
                  properties:
                    configs:
                      type: string
                    environments:
                      type: string
                    members:
                      type: string
                    permission-groups:
                      type: string
                    segments:
                      type: string
                    self:
                      type: string
                    tags:
                      type: string
                  type: object
                description:
                  nullable: true
                  type: string
                name:
                  nullable: true
                  type: string
                order:
                  format: int32
                  type: integer
                productId:
                  format: uuid
                  type: string
                reasonRequired:
                  type: boolean
              type: object
          type: object
        _links:
          properties:
            self:
              type: string
            settings:
              type: string
          type: object
        configId:
          format: uuid
          type: string
        description:
          nullable: true
          type: string
        name:
          nullable: true
          type: string
        order:
          format: int32
          type: integer
      type: object
    ConfigSettingValueModel:
      additionalProperties: false
      properties:
        integrationLinks:
          items:
            $ref: "#/components/schemas/IntegrationLinkModel"
          nullable: true
          type: array
        lastUpdaterUserEmail:
          nullable: true
          type: string
        lastUpdaterUserFullName:
          nullable: true
          type: string
        rolloutPercentageItems:
          description: The percentage rule collection.
          items:
            $ref: "#/components/schemas/RolloutPercentageItemModel"
          nullable: true
          type: array
        rolloutRules:
          description: The targeting rule collection.
          items:
            $ref: "#/components/schemas/RolloutRuleModel"
          nullable: true
          type: array
        setting:
          $ref: "#/components/schemas/SettingDataModel"
        settingTags:
          items:
            $ref: "#/components/schemas/SettingTagModel"
          nullable: true
          type: array
        updatedAt:
          format: date-time
          nullable: true
          type: string
        value:
          description: The value to serve. It must respect the setting type.
          nullable: true
      type: object
    ConfigSettingValuesModel:
      additionalProperties: false
      properties:
        config:
          $ref: "#/components/schemas/ConfigModel"
        environment:
          $ref: "#/components/schemas/EnvironmentModel"
        readOnly:
          type: boolean
        settingValues:
          items:
            $ref: "#/components/schemas/ConfigSettingValueModel"
          nullable: true
          type: array
      type: object
    ConnectRequest:
      additionalProperties: false
      properties:
        clientKey:
          maxLength: 255
          minLength: 0
          type: string
        jiraJwtToken:
          maxLength: 15000
          minLength: 0
          type: string
      required:
        - clientKey
        - jiraJwtToken
      type: object
    CreateConfigRequest:
      additionalProperties: false
      properties:
        description:
          maxLength: 1000
          minLength: 0
          nullable: true
          type: string
        name:
          maxLength: 255
          minLength: 0
          type: string
      required:
        - name
      type: object
    CreateEnvironmentModel:
      additionalProperties: false
      properties:
        color:
          maxLength: 255
          minLength: 0
          nullable: true
          type: string
        description:
          maxLength: 1000
          minLength: 0
          nullable: true
          type: string
        name:
          maxLength: 255
          minLength: 0
          type: string
      required:
        - name
      type: object
    CreateOrUpdateEnvironmentAccessModel:
      additionalProperties: false
      properties:
        color:
          nullable: true
          type: string
        description:
          nullable: true
          type: string
        environmentAccessType:
          $ref: "#/components/schemas/EnvironmentAccessType"
        environmentId:
          format: uuid
          type: string
        name:
          nullable: true
          type: string
        order:
          format: int32
          type: integer
        reasonRequired:
          type: boolean
      type: object
    CreatePermissionGroupRequest:
      additionalProperties: false
      properties:
        accessType:
          $ref: "#/components/schemas/AccessType"
        canCreateOrUpdateConfig:
          type: boolean
        canCreateOrUpdateEnvironment:
          type: boolean
        canCreateOrUpdateSegments:
          type: boolean
        canCreateOrUpdateSetting:
          type: boolean
        canCreateOrUpdateTag:
          type: boolean
        canDeleteConfig:
          type: boolean
        canDeleteEnvironment:
          type: boolean
        canDeleteSegments:
          type: boolean
        canDeleteSetting:
          type: boolean
        canDeleteTag:
          type: boolean
        canManageIntegrations:
          type: boolean
        canManageMembers:
          type: boolean
        canManageProductPreferences:
          type: boolean
        canManageWebhook:
          type: boolean
        canRotateSdkKey:
          type: boolean
        canTagSetting:
          type: boolean
        canUseExportImport:
          type: boolean
        canViewProductAuditLog:
          type: boolean
        canViewProductStatistics:
          type: boolean
        canViewSdkKey:
          type: boolean
        environmentAccesses:
          items:
            $ref: "#/components/schemas/CreateOrUpdateEnvironmentAccessModel"
          nullable: true
          type: array
        name:
          maxLength: 255
          minLength: 0
          type: string
        newEnvironmentAccessType:
          $ref: "#/components/schemas/EnvironmentAccessType"
      required:
        - name
      type: object
    CreateProductRequest:
      additionalProperties: false
      properties:
        description:
          maxLength: 1000
          minLength: 0
          nullable: true
          type: string
        name:
          maxLength: 1000
          minLength: 0
          type: string
      required:
        - name
      type: object
    CreateSegmentModel:
      additionalProperties: false
      properties:
        comparator:
          $ref: "#/components/schemas/RolloutRuleComparator"
        comparisonAttribute:
          maxLength: 1000
          minLength: 0
          type: string
        comparisonValue:
          maxLength: 65535
          minLength: 0
          type: string
        description:
          maxLength: 1000
          minLength: 0
          nullable: true
          type: string
        name:
          maxLength: 255
          minLength: 0
          type: string
      required:
        - comparator
        - comparisonAttribute
        - comparisonValue
        - name
      type: object
    CreateSettingInitialValues:
      additionalProperties: false
      properties:
        hint:
          description: A short description for the setting, shown on the Dashboard UI.
          maxLength: 1000
          minLength: 0
          nullable: true
          type: string
        initialValues:
          description: Optional, initial values of the feature flag or setting in the given Environments.
          items:
            $ref: "#/components/schemas/InitialValue"
          nullable: true
          type: array
        key:
          description: The key of the setting.
          maxLength: 255
          minLength: 0
          pattern: ^[a-zA-Z]+[a-zA-Z0-9_]*
          type: string
        name:
          description: The name of the setting, shown on the Dashboard UI.
          maxLength: 255
          minLength: 0
          type: string
        settingType:
          $ref: "#/components/schemas/SettingType"
        tags:
          description: The IDs of the tags which are attached to the setting.
          items:
            format: int64
            type: integer
          nullable: true
          type: array
      required:
        - key
        - name
        - settingType
      type: object
    CreateTagModel:
      additionalProperties: false
      properties:
        color:
          maxLength: 255
          minLength: 0
          nullable: true
          type: string
        name:
          maxLength: 255
          minLength: 0
          type: string
      required:
        - name
      type: object
    DeleteIntegrationLinkModel:
      additionalProperties: false
      properties:
        hasRemainingIntegrationLink:
          type: boolean
      type: object
    DeleteRepositoryReportsRequest:
      additionalProperties: false
      properties:
        branch:
          description: If it's set, only this branch's reports belonging to the given repository will be deleted.
          maxLength: 255
          minLength: 0
          nullable: true
          type: string
        configId:
          description: The Config's identifier from where the reports should be deleted.
          format: uuid
          type: string
        repository:
          description: The source control repository which's reports should be deleted.
          maxLength: 255
          minLength: 0
          type: string
        settingId:
          description: If it's set, only this setting's reports belonging to the given repository will be deleted.
          format: int32
          nullable: true
          type: integer
      required:
        - configId
        - repository
      type: object
    EnvironmentAccessModel:
      additionalProperties: false
      properties:
        color:
          nullable: true
          type: string
        description:
          nullable: true
          type: string
        environmentAccessType:
          $ref: "#/components/schemas/EnvironmentAccessType"
        environmentId:
          format: uuid
          type: string
        name:
          nullable: true
          type: string
        order:
          format: int32
          type: integer
        reasonRequired:
          type: boolean
      type: object
    EnvironmentAccessType:
      enum:
        - full
        - readOnly
        - none
      type: string
    EnvironmentModel:
      additionalProperties: false
      properties:
        color:
          nullable: true
          type: string
        description:
          nullable: true
          type: string
        environmentId:
          format: uuid
          type: string
        name:
          nullable: true
          type: string
        order:
          format: int32
          type: integer
        product:
          $ref: "#/components/schemas/ProductModel"
        reasonRequired:
          type: boolean
      type: object
    EnvironmentModel-haljson:
      properties:
        _embedded:
          properties:
            product:
              properties:
                _embedded:
                  properties:
                    organization:
                      properties:
                        _links:
                          properties:
                            members:
                              type: string
                            products:
                              type: string
                          type: object
                        name:
                          nullable: true
                          type: string
                        organizationId:
                          format: uuid
                          type: string
                      type: object
                  type: object
                _links:
                  properties:
                    configs:
                      type: string
                    environments:
                      type: string
                    members:
                      type: string
                    permission-groups:
                      type: string
                    segments:
                      type: string
                    self:
                      type: string
                    tags:
                      type: string
                  type: object
                description:
                  nullable: true
                  type: string
                name:
                  nullable: true
                  type: string
                order:
                  format: int32
                  type: integer
                productId:
                  format: uuid
                  type: string
                reasonRequired:
                  type: boolean
              type: object
          type: object
        _links:
          properties:
            self:
              type: string
          type: object
        color:
          nullable: true
          type: string
        description:
          nullable: true
          type: string
        environmentId:
          format: uuid
          type: string
        name:
          nullable: true
          type: string
        order:
          format: int32
          type: integer
        reasonRequired:
          type: boolean
      type: object
    FlagReference:
      additionalProperties: false
      properties:
        references:
          description: The actual references to the given Feature Flag or Setting.
          items:
            $ref: "#/components/schemas/ReferenceLines"
          type: array
        settingId:
          description: The identifier of the Feature Flag or Setting the code reference belongs to.
          format: int32
          type: integer
      required:
        - references
        - settingId
      type: object
    InitialValue:
      additionalProperties: false
      properties:
        environmentId:
          description: The ID of the Environment where the initial value should be set.
          format: uuid
          type: string
        value:
          description: The initial value in the given Environment. It must respect the setting type.
          nullable: true
      type: object
    IntegrationLinkDetail:
      additionalProperties: false
      properties:
        config:
          $ref: "#/components/schemas/ConfigModel"
        environment:
          $ref: "#/components/schemas/EnvironmentModel"
        product:
          $ref: "#/components/schemas/ProductModel"
        readOnly:
          type: boolean
        setting:
          $ref: "#/components/schemas/SettingDataModel"
        status:
          nullable: true
          type: string
      type: object
    IntegrationLinkDetailsModel:
      additionalProperties: false
      properties:
        allIntegrationLinkCount:
          format: int32
          type: integer
        details:
          items:
            $ref: "#/components/schemas/IntegrationLinkDetail"
          nullable: true
          readOnly: true
          type: array
      type: object
    IntegrationLinkModel:
      additionalProperties: false
      properties:
        description:
          nullable: true
          type: string
        integrationLinkType:
          $ref: "#/components/schemas/IntegrationLinkType"
        key:
          nullable: true
          type: string
        url:
          nullable: true
          type: string
      type: object
    IntegrationLinkType:
      enum:
        - trello
        - jira
        - monday
      type: string
    InviteMembersRequest:
      additionalProperties: false
      properties:
        emails:
          items:
            type: string
          type: array
        permissionGroupId:
          format: int64
          type: integer
      required:
        - emails
        - permissionGroupId
      type: object
    JsonNode:
      additionalProperties: false
      properties:
        options:
          $ref: "#/components/schemas/JsonNodeOptions"
        parent:
          $ref: "#/components/schemas/JsonNode"
        root:
          $ref: "#/components/schemas/JsonNode"
      type: object
    JsonNodeOptions:
      additionalProperties: false
      properties:
        propertyNameCaseInsensitive:
          type: boolean
      type: object
    JsonPatch:
      additionalProperties: false
      properties:
        operations:
          items:
            $ref: "#/components/schemas/PatchOperation"
          nullable: true
          type: array
      type: object
    JsonPointer:
      additionalProperties: false
      properties:
        isUriEncoded:
          readOnly: true
          type: boolean
        kind:
          $ref: "#/components/schemas/JsonPointerKind"
        segments:
          items:
            $ref: "#/components/schemas/PointerSegment"
          nullable: true
          readOnly: true
          type: array
        source:
          nullable: true
          readOnly: true
          type: string
      type: object
    JsonPointerKind:
      enum:
        - unspecified
        - plain
        - uriEncoded
      type: string
    MeModel:
      additionalProperties: false
      properties:
        email:
          nullable: true
          readOnly: true
          type: string
        fullName:
          nullable: true
          readOnly: true
          type: string
      type: object
    MemberModel:
      additionalProperties: false
      properties:
        email:
          nullable: true
          type: string
        fullName:
          nullable: true
          type: string
        permissionGroupId:
          format: int64
          type: integer
        productId:
          format: uuid
          type: string
        userId:
          nullable: true
          type: string
      type: object
    OperationType:
      enum:
        - unknown
        - add
        - remove
        - replace
        - move
        - copy
        - test
      type: string
    OrganizationModel:
      additionalProperties: false
      properties:
        name:
          nullable: true
          type: string
        organizationId:
          format: uuid
          type: string
      type: object
    OrganizationModel-haljson:
      properties:
        _links:
          properties:
            members:
              type: string
            products:
              type: string
          type: object
        name:
          nullable: true
          type: string
        organizationId:
          format: uuid
          type: string
      type: object
    PatchOperation:
      additionalProperties: false
      properties:
        from:
          $ref: "#/components/schemas/JsonPointer"
        op:
          $ref: "#/components/schemas/OperationType"
        path:
          $ref: "#/components/schemas/JsonPointer"
        value:
          $ref: "#/components/schemas/JsonNode"
      type: object
    PermissionGroupModel:
      additionalProperties: false
      properties:
        accessType:
          $ref: "#/components/schemas/AccessType"
        canCreateOrUpdateConfig:
          type: boolean
        canCreateOrUpdateEnvironment:
          type: boolean
        canCreateOrUpdateSegments:
          type: boolean
        canCreateOrUpdateSetting:
          type: boolean
        canCreateOrUpdateTag:
          type: boolean
        canDeleteConfig:
          type: boolean
        canDeleteEnvironment:
          type: boolean
        canDeleteSegments:
          type: boolean
        canDeleteSetting:
          type: boolean
        canDeleteTag:
          type: boolean
        canManageIntegrations:
          type: boolean
        canManageMembers:
          type: boolean
        canManageProductPreferences:
          type: boolean
        canManageWebhook:
          type: boolean
        canRotateSdkKey:
          type: boolean
        canTagSetting:
          type: boolean
        canUseExportImport:
          type: boolean
        canViewProductAuditLog:
          type: boolean
        canViewProductStatistics:
          type: boolean
        canViewSdkKey:
          type: boolean
        environmentAccesses:
          items:
            $ref: "#/components/schemas/EnvironmentAccessModel"
          nullable: true
          type: array
        name:
          nullable: true
          type: string
        newEnvironmentAccessType:
          $ref: "#/components/schemas/EnvironmentAccessType"
        permissionGroupId:
          format: int64
          type: integer
        product:
          $ref: "#/components/schemas/ProductModel"
      type: object
    PermissionGroupModel-haljson:
      properties:
        _embedded:
          properties:
            product:
              properties:
                _embedded:
                  properties:
                    organization:
                      properties:
                        _links:
                          properties:
                            members:
                              type: string
                            products:
                              type: string
                          type: object
                        name:
                          nullable: true
                          type: string
                        organizationId:
                          format: uuid
                          type: string
                      type: object
                  type: object
                _links:
                  properties:
                    configs:
                      type: string
                    environments:
                      type: string
                    members:
                      type: string
                    permission-groups:
                      type: string
                    segments:
                      type: string
                    self:
                      type: string
                    tags:
                      type: string
                  type: object
                description:
                  nullable: true
                  type: string
                name:
                  nullable: true
                  type: string
                order:
                  format: int32
                  type: integer
                productId:
                  format: uuid
                  type: string
                reasonRequired:
                  type: boolean
              type: object
          type: object
        _links:
          properties:
            self:
              type: string
          type: object
        accessType:
          $ref: "#/components/schemas/AccessType"
        canCreateOrUpdateConfig:
          type: boolean
        canCreateOrUpdateEnvironment:
          type: boolean
        canCreateOrUpdateSegments:
          type: boolean
        canCreateOrUpdateSetting:
          type: boolean
        canCreateOrUpdateTag:
          type: boolean
        canDeleteConfig:
          type: boolean
        canDeleteEnvironment:
          type: boolean
        canDeleteSegments:
          type: boolean
        canDeleteSetting:
          type: boolean
        canDeleteTag:
          type: boolean
        canManageIntegrations:
          type: boolean
        canManageMembers:
          type: boolean
        canManageProductPreferences:
          type: boolean
        canManageWebhook:
          type: boolean
        canRotateSdkKey:
          type: boolean
        canTagSetting:
          type: boolean
        canUseExportImport:
          type: boolean
        canViewProductAuditLog:
          type: boolean
        canViewProductStatistics:
          type: boolean
        canViewSdkKey:
          type: boolean
        environmentAccesses:
          items:
            $ref: "#/components/schemas/EnvironmentAccessModel"
          nullable: true
          type: array
        name:
          nullable: true
          type: string
        newEnvironmentAccessType:
          $ref: "#/components/schemas/EnvironmentAccessType"
        permissionGroupId:
          format: int64
          type: integer
      type: object
    PointerSegment:
      additionalProperties: false
      properties:
        source:
          nullable: true
          readOnly: true
          type: string
        value:
          nullable: true
          readOnly: true
          type: string
      type: object
    ProductModel:
      additionalProperties: false
      properties:
        description:
          nullable: true
          type: string
        name:
          nullable: true
          type: string
        order:
          format: int32
          type: integer
        organization:
          $ref: "#/components/schemas/OrganizationModel"
        productId:
          format: uuid
          type: string
        reasonRequired:
          type: boolean
      type: object
    ProductModel-haljson:
      properties:
        _embedded:
          properties:
            organization:
              properties:
                _links:
                  properties:
                    members:
                      type: string
                    products:
                      type: string
                  type: object
                name:
                  nullable: true
                  type: string
                organizationId:
                  format: uuid
                  type: string
              type: object
          type: object
        _links:
          properties:
            configs:
              type: string
            environments:
              type: string
            members:
              type: string
            permission-groups:
              type: string
            segments:
              type: string
            self:
              type: string
            tags:
              type: string
          type: object
        description:
          nullable: true
          type: string
        name:
          nullable: true
          type: string
        order:
          format: int32
          type: integer
        productId:
          format: uuid
          type: string
        reasonRequired:
          type: boolean
      type: object
    ReferenceLine:
      additionalProperties: false
      properties:
        lineNumber:
          description: The line number of the reference line.
          format: int32
          type: integer
        lineText:
          description: The content of the reference line.
          maxLength: 1000
          minLength: 0
          nullable: true
          type: string
      required:
        - lineNumber
      type: object
    ReferenceLines:
      additionalProperties: false
      properties:
        file:
          description: The file's name in where the code reference has been found. (Appears on the ConfigCat Dashboard)
          maxLength: 255
          minLength: 0
          type: string
        fileUrl:
          description: The file's url. (Used to point to the file on the repository's website)
          maxLength: 1000
          minLength: 0
          nullable: true
          type: string
        postLines:
          description: The lines after the actual reference line.
          items:
            $ref: "#/components/schemas/ReferenceLine"
          nullable: true
          type: array
        preLines:
          description: The lines before the actual reference line.
          items:
            $ref: "#/components/schemas/ReferenceLine"
          nullable: true
          type: array
        referenceLine:
          $ref: "#/components/schemas/ReferenceLine"
      required:
        - file
        - referenceLine
      type: object
    RolloutPercentageItemModel:
      additionalProperties: false
      properties:
        percentage:
          description: The percentage value for the rule.
          format: int64
          type: integer
        value:
          description: The value to serve when the user falls in the percentage rule. It must respect the setting type.
          nullable: true
      required:
        - percentage
      type: object
    RolloutRuleComparator:
      enum:
        - isOneOf
        - isNotOneOf
        - contains
        - doesNotContain
        - semVerIsOneOf
        - semVerIsNotOneOf
        - semVerLess
        - semVerLessOrEquals
        - semVerGreater
        - semVerGreaterOrEquals
        - numberEquals
        - numberDoesNotEqual
        - numberLess
        - numberLessOrEquals
        - numberGreater
        - numberGreaterOrEquals
        - sensitiveIsOneOf
        - sensitiveIsNotOneOf
      type: string
    RolloutRuleModel:
      additionalProperties: false
      properties:
        comparator:
          $ref: "#/components/schemas/RolloutRuleComparator"
        comparisonAttribute:
          description: The user attribute to compare.
          maxLength: 1000
          minLength: 0
          nullable: true
          type: string
        comparisonValue:
          description: The value to compare against.
          maxLength: 65535
          minLength: 0
          nullable: true
          type: string
        segmentComparator:
          $ref: "#/components/schemas/SegmentComparator"
        segmentId:
          description: The segment to compare against.
          format: uuid
          nullable: true
          type: string
        value:
          description: The value to serve when the comparison matches. It must respect the setting type.
          nullable: true
      type: object
    SdkKeysModel:
      additionalProperties: false
      properties:
        primary:
          nullable: true
          type: string
        secondary:
          nullable: true
          type: string
      type: object
    SegmentComparator:
      enum:
        - isIn
        - isNotIn
      type: string
    SegmentListModel:
      additionalProperties: false
      properties:
        createdAt:
          format: date-time
          type: string
        creatorEmail:
          nullable: true
          type: string
        creatorFullName:
          nullable: true
          type: string
        description:
          nullable: true
          type: string
        lastUpdaterEmail:
          nullable: true
          type: string
        lastUpdaterFullName:
          nullable: true
          type: string
        name:
          nullable: true
          type: string
        product:
          $ref: "#/components/schemas/ProductModel"
        segmentId:
          format: uuid
          type: string
        updatedAt:
          format: date-time
          type: string
        usage:
          format: int32
          type: integer
      type: object
    SegmentListModel-haljson:
      properties:
        _embedded:
          properties:
            product:
              properties:
                _embedded:
                  properties:
                    organization:
                      properties:
                        _links:
                          properties:
                            members:
                              type: string
                            products:
                              type: string
                          type: object
                        name:
                          nullable: true
                          type: string
                        organizationId:
                          format: uuid
                          type: string
                      type: object
                  type: object
                _links:
                  properties:
                    configs:
                      type: string
                    environments:
                      type: string
                    members:
                      type: string
                    permission-groups:
                      type: string
                    segments:
                      type: string
                    self:
                      type: string
                    tags:
                      type: string
                  type: object
                description:
                  nullable: true
                  type: string
                name:
                  nullable: true
                  type: string
                order:
                  format: int32
                  type: integer
                productId:
                  format: uuid
                  type: string
                reasonRequired:
                  type: boolean
              type: object
          type: object
        _links:
          properties:
            self:
              type: string
          type: object
        createdAt:
          format: date-time
          type: string
        creatorEmail:
          nullable: true
          type: string
        creatorFullName:
          nullable: true
          type: string
        description:
          nullable: true
          type: string
        lastUpdaterEmail:
          nullable: true
          type: string
        lastUpdaterFullName:
          nullable: true
          type: string
        name:
          nullable: true
          type: string
        segmentId:
          format: uuid
          type: string
        updatedAt:
          format: date-time
          type: string
        usage:
          format: int32
          type: integer
      type: object
    SegmentModel:
      additionalProperties: false
      properties:
        comparator:
          $ref: "#/components/schemas/RolloutRuleComparator"
        comparisonAttribute:
          nullable: true
          type: string
        comparisonValue:
          nullable: true
          type: string
        createdAt:
          format: date-time
          type: string
        creatorEmail:
          nullable: true
          type: string
        creatorFullName:
          nullable: true
          type: string
        description:
          nullable: true
          type: string
        lastUpdaterEmail:
          nullable: true
          type: string
        lastUpdaterFullName:
          nullable: true
          type: string
        name:
          nullable: true
          type: string
        product:
          $ref: "#/components/schemas/ProductModel"
        segmentId:
          format: uuid
          type: string
        updatedAt:
          format: date-time
          type: string
      type: object
    SegmentModel-haljson:
      properties:
        _embedded:
          properties:
            product:
              properties:
                _embedded:
                  properties:
                    organization:
                      properties:
                        _links:
                          properties:
                            members:
                              type: string
                            products:
                              type: string
                          type: object
                        name:
                          nullable: true
                          type: string
                        organizationId:
                          format: uuid
                          type: string
                      type: object
                  type: object
                _links:
                  properties:
                    configs:
                      type: string
                    environments:
                      type: string
                    members:
                      type: string
                    permission-groups:
                      type: string
                    segments:
                      type: string
                    self:
                      type: string
                    tags:
                      type: string
                  type: object
                description:
                  nullable: true
                  type: string
                name:
                  nullable: true
                  type: string
                order:
                  format: int32
                  type: integer
                productId:
                  format: uuid
                  type: string
                reasonRequired:
                  type: boolean
              type: object
          type: object
        _links:
          properties:
            self:
              type: string
          type: object
        comparator:
          $ref: "#/components/schemas/RolloutRuleComparator"
        comparisonAttribute:
          nullable: true
          type: string
        comparisonValue:
          nullable: true
          type: string
        createdAt:
          format: date-time
          type: string
        creatorEmail:
          nullable: true
          type: string
        creatorFullName:
          nullable: true
          type: string
        description:
          nullable: true
          type: string
        lastUpdaterEmail:
          nullable: true
          type: string
        lastUpdaterFullName:
          nullable: true
          type: string
        name:
          nullable: true
          type: string
        segmentId:
          format: uuid
          type: string
        updatedAt:
          format: date-time
          type: string
      type: object
    SettingDataModel:
      additionalProperties: false
      properties:
        createdAt:
          format: date-time
          nullable: true
          type: string
        creatorEmail:
          nullable: true
          type: string
        creatorFullName:
          nullable: true
          type: string
        hint:
          nullable: true
          type: string
        isWatching:
          type: boolean
        key:
          nullable: true
          type: string
        name:
          nullable: true
          type: string
        order:
          format: int32
          type: integer
        settingId:
          format: int32
          type: integer
        settingType:
          $ref: "#/components/schemas/SettingType"
      type: object
    SettingModel:
      additionalProperties: false
      properties:
        configId:
          format: uuid
          type: string
        configName:
          nullable: true
          type: string
        hint:
          nullable: true
          type: string
        key:
          nullable: true
          type: string
        name:
          nullable: true
          type: string
        order:
          format: int32
          type: integer
        settingId:
          format: int32
          type: integer
        settingType:
          $ref: "#/components/schemas/SettingType"
        tags:
          items:
            $ref: "#/components/schemas/TagModel"
          nullable: true
          type: array
      type: object
    SettingModel-haljson:
      properties:
        _embedded:
          properties:
            tags:
              items:
                properties:
                  _embedded:
                    properties:
                      product:
                        properties:
                          _embedded:
                            properties:
                              organization:
                                properties:
                                  _links:
                                    properties:
                                      members:
                                        type: string
                                      products:
                                        type: string
                                    type: object
                                  name:
                                    nullable: true
                                    type: string
                                  organizationId:
                                    format: uuid
                                    type: string
                                type: object
                            type: object
                          _links:
                            properties:
                              configs:
                                type: string
                              environments:
                                type: string
                              members:
                                type: string
                              permission-groups:
                                type: string
                              segments:
                                type: string
                              self:
                                type: string
                              tags:
                                type: string
                            type: object
                          description:
                            nullable: true
                            type: string
                          name:
                            nullable: true
                            type: string
                          order:
                            format: int32
                            type: integer
                          productId:
                            format: uuid
                            type: string
                          reasonRequired:
                            type: boolean
                        type: object
                    type: object
                  _links:
                    properties:
                      self:
                        type: string
                    type: object
                  color:
                    nullable: true
                    type: string
                  name:
                    nullable: true
                    type: string
                  tagId:
                    format: int64
                    type: integer
                type: object
              type: array
          type: object
        _links:
          properties:
            self:
              type: string
          type: object
        configId:
          format: uuid
          type: string
        configName:
          nullable: true
          type: string
        hint:
          nullable: true
          type: string
        key:
          nullable: true
          type: string
        name:
          nullable: true
          type: string
        order:
          format: int32
          type: integer
        settingId:
          format: int32
          type: integer
        settingType:
          $ref: "#/components/schemas/SettingType"
      type: object
    SettingTagModel:
      additionalProperties: false
      properties:
        color:
          nullable: true
          type: string
        name:
          nullable: true
          type: string
        settingTagId:
          format: int64
          type: integer
        tagId:
          format: int64
          type: integer
      type: object
    SettingType:
      enum:
        - boolean
        - string
        - int
        - double
      type: string
    SettingValueModel:
      additionalProperties: false
      properties:
        config:
          $ref: "#/components/schemas/ConfigModel"
        environment:
          $ref: "#/components/schemas/EnvironmentModel"
        integrationLinks:
          items:
            $ref: "#/components/schemas/IntegrationLinkModel"
          nullable: true
          type: array
        lastUpdaterUserEmail:
          nullable: true
          type: string
        lastUpdaterUserFullName:
          nullable: true
          type: string
        readOnly:
          type: boolean
        rolloutPercentageItems:
          description: The percentage rule collection.
          items:
            $ref: "#/components/schemas/RolloutPercentageItemModel"
          nullable: true
          type: array
        rolloutRules:
          description: The targeting rule collection.
          items:
            $ref: "#/components/schemas/RolloutRuleModel"
          nullable: true
          type: array
        setting:
          $ref: "#/components/schemas/SettingDataModel"
        settingTags:
          items:
            $ref: "#/components/schemas/SettingTagModel"
          nullable: true
          type: array
        updatedAt:
          format: date-time
          nullable: true
          type: string
        value:
          description: The value to serve. It must respect the setting type.
          nullable: true
      type: object
    SettingValueModel-haljson:
      properties:
        _embedded:
          properties:
            config:
              properties:
                _embedded:
                  properties:
                    product:
                      properties:
                        _embedded:
                          properties:
                            organization:
                              properties:
                                _links:
                                  properties:
                                    members:
                                      type: string
                                    products:
                                      type: string
                                  type: object
                                name:
                                  nullable: true
                                  type: string
                                organizationId:
                                  format: uuid
                                  type: string
                              type: object
                          type: object
                        _links:
                          properties:
                            configs:
                              type: string
                            environments:
                              type: string
                            members:
                              type: string
                            permission-groups:
                              type: string
                            segments:
                              type: string
                            self:
                              type: string
                            tags:
                              type: string
                          type: object
                        description:
                          nullable: true
                          type: string
                        name:
                          nullable: true
                          type: string
                        order:
                          format: int32
                          type: integer
                        productId:
                          format: uuid
                          type: string
                        reasonRequired:
                          type: boolean
                      type: object
                  type: object
                _links:
                  properties:
                    self:
                      type: string
                    settings:
                      type: string
                  type: object
                configId:
                  format: uuid
                  type: string
                description:
                  nullable: true
                  type: string
                name:
                  nullable: true
                  type: string
                order:
                  format: int32
                  type: integer
              type: object
            environment:
              properties:
                _embedded:
                  properties:
                    product:
                      properties:
                        _embedded:
                          properties:
                            organization:
                              properties:
                                _links:
                                  properties:
                                    members:
                                      type: string
                                    products:
                                      type: string
                                  type: object
                                name:
                                  nullable: true
                                  type: string
                                organizationId:
                                  format: uuid
                                  type: string
                              type: object
                          type: object
                        _links:
                          properties:
                            configs:
                              type: string
                            environments:
                              type: string
                            members:
                              type: string
                            permission-groups:
                              type: string
                            segments:
                              type: string
                            self:
                              type: string
                            tags:
                              type: string
                          type: object
                        description:
                          nullable: true
                          type: string
                        name:
                          nullable: true
                          type: string
                        order:
                          format: int32
                          type: integer
                        productId:
                          format: uuid
                          type: string
                        reasonRequired:
                          type: boolean
                      type: object
                  type: object
                _links:
                  properties:
                    self:
                      type: string
                  type: object
                color:
                  nullable: true
                  type: string
                description:
                  nullable: true
                  type: string
                environmentId:
                  format: uuid
                  type: string
                name:
                  nullable: true
                  type: string
                order:
                  format: int32
                  type: integer
                reasonRequired:
                  type: boolean
              type: object
            integrationLinks:
              items:
                additionalProperties: false
                properties:
                  description:
                    nullable: true
                    type: string
                  integrationLinkType:
                    $ref: "#/components/schemas/IntegrationLinkType"
                  key:
                    nullable: true
                    type: string
                  url:
                    nullable: true
                    type: string
                type: object
              type: array
            setting:
              additionalProperties: false
              properties:
                createdAt:
                  format: date-time
                  nullable: true
                  type: string
                creatorEmail:
                  nullable: true
                  type: string
                creatorFullName:
                  nullable: true
                  type: string
                hint:
                  nullable: true
                  type: string
                isWatching:
                  type: boolean
                key:
                  nullable: true
                  type: string
                name:
                  nullable: true
                  type: string
                order:
                  format: int32
                  type: integer
                settingId:
                  format: int32
                  type: integer
                settingType:
                  $ref: "#/components/schemas/SettingType"
              type: object
            settingTags:
              items:
                additionalProperties: false
                properties:
                  color:
                    nullable: true
                    type: string
                  name:
                    nullable: true
                    type: string
                  settingTagId:
                    format: int64
                    type: integer
                  tagId:
                    format: int64
                    type: integer
                type: object
              type: array
          type: object
        _links:
          properties:
            self:
              type: string
          type: object
        lastUpdaterUserEmail:
          nullable: true
          type: string
        lastUpdaterUserFullName:
          nullable: true
          type: string
        readOnly:
          type: boolean
        rolloutPercentageItems:
          description: The percentage rule collection.
          items:
            $ref: "#/components/schemas/RolloutPercentageItemModel"
          nullable: true
          type: array
        rolloutRules:
          description: The targeting rule collection.
          items:
            $ref: "#/components/schemas/RolloutRuleModel"
          nullable: true
          type: array
        updatedAt:
          format: date-time
          nullable: true
          type: string
        value:
          description: The value to serve. It must respect the setting type.
          nullable: true
      type: object
    TagModel:
      additionalProperties: false
      properties:
        color:
          nullable: true
          type: string
        name:
          nullable: true
          type: string
        product:
          $ref: "#/components/schemas/ProductModel"
        tagId:
          format: int64
          type: integer
      type: object
    TagModel-haljson:
      properties:
        _embedded:
          properties:
            product:
              properties:
                _embedded:
                  properties:
                    organization:
                      properties:
                        _links:
                          properties:
                            members:
                              type: string
                            products:
                              type: string
                          type: object
                        name:
                          nullable: true
                          type: string
                        organizationId:
                          format: uuid
                          type: string
                      type: object
                  type: object
                _links:
                  properties:
                    configs:
                      type: string
                    environments:
                      type: string
                    members:
                      type: string
                    permission-groups:
                      type: string
                    segments:
                      type: string
                    self:
                      type: string
                    tags:
                      type: string
                  type: object
                description:
                  nullable: true
                  type: string
                name:
                  nullable: true
                  type: string
                order:
                  format: int32
                  type: integer
                productId:
                  format: uuid
                  type: string
                reasonRequired:
                  type: boolean
              type: object
          type: object
        _links:
          properties:
            self:
              type: string
          type: object
        color:
          nullable: true
          type: string
        name:
          nullable: true
          type: string
        tagId:
          format: int64
          type: integer
      type: object
    UpdateConfigRequest:
      additionalProperties: false
      properties:
        description:
          maxLength: 1000
          minLength: 0
          nullable: true
          type: string
        name:
          maxLength: 255
          minLength: 0
          nullable: true
          type: string
      type: object
    UpdateEnvironmentModel:
      additionalProperties: false
      properties:
        color:
          maxLength: 255
          minLength: 0
          nullable: true
          type: string
        description:
          maxLength: 1000
          minLength: 0
          nullable: true
          type: string
        name:
          maxLength: 255
          minLength: 0
          nullable: true
          type: string
      type: object
    UpdatePermissionGroupRequest:
      additionalProperties: false
      properties:
        accessType:
          $ref: "#/components/schemas/AccessType"
        canCreateOrUpdateConfig:
          nullable: true
          type: boolean
        canCreateOrUpdateEnvironment:
          nullable: true
          type: boolean
        canCreateOrUpdateSegments:
          nullable: true
          type: boolean
        canCreateOrUpdateSetting:
          nullable: true
          type: boolean
        canCreateOrUpdateTag:
          nullable: true
          type: boolean
        canDeleteConfig:
          nullable: true
          type: boolean
        canDeleteEnvironment:
          nullable: true
          type: boolean
        canDeleteSegments:
          nullable: true
          type: boolean
        canDeleteSetting:
          nullable: true
          type: boolean
        canDeleteTag:
          nullable: true
          type: boolean
        canManageIntegrations:
          nullable: true
          type: boolean
        canManageMembers:
          nullable: true
          type: boolean
        canManageProductPreferences:
          nullable: true
          type: boolean
        canManageWebhook:
          nullable: true
          type: boolean
        canRotateSdkKey:
          nullable: true
          type: boolean
        canTagSetting:
          nullable: true
          type: boolean
        canUseExportImport:
          nullable: true
          type: boolean
        canViewProductAuditLog:
          nullable: true
          type: boolean
        canViewProductStatistics:
          nullable: true
          type: boolean
        canViewSdkKey:
          nullable: true
          type: boolean
        environmentAccesses:
          items:
            $ref: "#/components/schemas/CreateOrUpdateEnvironmentAccessModel"
          nullable: true
          type: array
        name:
          maxLength: 255
          minLength: 0
          nullable: true
          type: string
        newEnvironmentAccessType:
          $ref: "#/components/schemas/EnvironmentAccessType"
      type: object
    UpdateProductRequest:
      additionalProperties: false
      properties:
        description:
          maxLength: 1000
          minLength: 0
          nullable: true
          type: string
        name:
          maxLength: 1000
          minLength: 0
          nullable: true
          type: string
      type: object
    UpdateSegmentModel:
      additionalProperties: false
      properties:
        comparator:
          $ref: "#/components/schemas/RolloutRuleComparator"
        comparisonAttribute:
          maxLength: 1000
          minLength: 0
          nullable: true
          type: string
        comparisonValue:
          maxLength: 65535
          minLength: 0
          nullable: true
          type: string
        description:
          maxLength: 1000
          minLength: 0
          nullable: true
          type: string
        name:
          maxLength: 255
          minLength: 0
          nullable: true
          type: string
      type: object
    UpdateSettingValueModel:
      additionalProperties: false
      properties:
        rolloutPercentageItems:
          description: The percentage rule collection.
          items:
            $ref: "#/components/schemas/RolloutPercentageItemModel"
          nullable: true
          type: array
        rolloutRules:
          description: The targeting rule collection.
          items:
            $ref: "#/components/schemas/RolloutRuleModel"
          nullable: true
          type: array
        value:
          description: The value to serve. It must respect the setting type.
          nullable: true
      type: object
    UpdateSettingValueWithSettingIdModel:
      additionalProperties: false
      properties:
        rolloutPercentageItems:
          description: The percentage rule collection.
          items:
            $ref: "#/components/schemas/RolloutPercentageItemModel"
          nullable: true
          type: array
        rolloutRules:
          description: The targeting rule collection.
          items:
            $ref: "#/components/schemas/RolloutRuleModel"
          nullable: true
          type: array
        settingId:
          description: The id of the Setting.
          format: int32
          type: integer
        value:
          description: The value to serve. It must respect the setting type.
          nullable: true
      type: object
    UpdateSettingValuesWithIdModel:
      additionalProperties: false
      properties:
        settingValues:
          description: The values to update.
          items:
            $ref: "#/components/schemas/UpdateSettingValueWithSettingIdModel"
          nullable: true
          type: array
      type: object
    UpdateTagModel:
      additionalProperties: false
      properties:
        color:
          maxLength: 255
          minLength: 0
          nullable: true
          type: string
        name:
          maxLength: 255
          minLength: 0
          nullable: true
          type: string
      type: object
    UserModel:
      additionalProperties: false
      properties:
        email:
          nullable: true
          type: string
        fullName:
          nullable: true
          type: string
        userId:
          nullable: true
          type: string
      type: object
  securitySchemes:
    Basic:
      description: |-
        To authenticate with the API you have to fill the `Authorization` HTTP request header with your Public API credentials.

        You can create your credentials on the <a target="_blank" href="https://app.configcat.com/my-account/public-api-credentials">Public API credentials management page</a>.
      scheme: basic
      type: http
x-tagGroups:
  - name: Feature Flag values
    tags:
      - Feature Flag & Setting values using SDK Key
      - Feature Flag & Setting values
  - name: Feature Flag metadata
    tags:
      - Feature Flags & Settings
      - Tags
  - name: General
    tags:
      - Products
      - Configs
      - Environments
      - Segments
      - SDK Keys
      - Code References
  - name: Membership
    tags:
      - Organizations
      - Members
      - Permission Groups
  - name: Diagnostics
    tags:
      - Audit logs
      - Me
