{
  "openapi": "3.1.1",
  "info": {
    "title": "FeatureFlags.Api | v1",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://flags-api.lantern-nonprod.com/"
    }
  ],
  "paths": {
    "/api/validate/flag-key": {
      "post": {
        "tags": [
          "Validation"
        ],
        "operationId": "ValidateFlagKey",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValidateFlagKeyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/me": {
      "get": {
        "tags": [
          "Users"
        ],
        "operationId": "GetMe",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/users/{id}": {
      "get": {
        "tags": [
          "Users"
        ],
        "operationId": "GetUser",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Users"
        ],
        "operationId": "DeleteUser",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/namespaces": {
      "get": {
        "tags": [
          "Namespaces"
        ],
        "operationId": "ListNamespaces",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Namespaces"
        ],
        "operationId": "CreateNamespace",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateNamespaceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/namespaces/{slug}": {
      "patch": {
        "tags": [
          "Namespaces"
        ],
        "operationId": "PatchNamespace",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchNamespaceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Namespaces"
        ],
        "operationId": "DeleteNamespace",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/namespaces/{slug}/environments/{env}": {
      "post": {
        "tags": [
          "Namespaces"
        ],
        "operationId": "EnrolEnvironment",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "env",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Namespaces"
        ],
        "operationId": "UnenrolEnvironment",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "env",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/namespaces/{slug}/environments": {
      "get": {
        "tags": [
          "Namespaces"
        ],
        "operationId": "ListEnrolments",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/namespaces/{slug}/environment-audit": {
      "get": {
        "tags": [
          "Namespaces"
        ],
        "operationId": "ListEnvironmentAudit",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/namespaces/{slug}/members": {
      "get": {
        "tags": [
          "Namespaces"
        ],
        "operationId": "ListMembers",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Namespaces"
        ],
        "operationId": "AddMember",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddMemberRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/namespaces/{slug}/members/{userId}": {
      "patch": {
        "tags": [
          "Namespaces"
        ],
        "operationId": "PatchMember",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchMemberRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Namespaces"
        ],
        "operationId": "RemoveMember",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/namespaces/{slug}/service-accounts": {
      "get": {
        "tags": [
          "Namespaces"
        ],
        "operationId": "ListServiceAccounts",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Namespaces"
        ],
        "operationId": "CreateServiceAccount",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateServiceAccountRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/namespaces/{slug}/service-accounts/{id}": {
      "delete": {
        "tags": [
          "Namespaces"
        ],
        "operationId": "RevokeServiceAccount",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/namespaces/{slug}/service-accounts/{serviceAccountId}/grant": {
      "post": {
        "tags": [
          "Namespaces"
        ],
        "operationId": "GrantServiceAccountNamespace",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "serviceAccountId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Namespaces"
        ],
        "operationId": "RevokeServiceAccountNamespace",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "serviceAccountId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/namespaces/{slug}/granted-service-accounts": {
      "get": {
        "tags": [
          "Namespaces"
        ],
        "operationId": "ListGrantedServiceAccounts",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/service-accounts/{serviceAccountId}/namespaces": {
      "get": {
        "tags": [
          "Namespaces"
        ],
        "operationId": "ListServiceAccountNamespaces",
        "parameters": [
          {
            "name": "serviceAccountId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/namespaces/{slug}/attributes": {
      "get": {
        "tags": [
          "Attributes"
        ],
        "operationId": "ListAttributes",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Attributes"
        ],
        "operationId": "CreateAttribute",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterAttributeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/namespaces/{slug}/attributes/{key}": {
      "patch": {
        "tags": [
          "Attributes"
        ],
        "operationId": "PatchAttribute",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterAttributeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Attributes"
        ],
        "operationId": "DeleteAttribute",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/namespaces/{slug}/audiences": {
      "get": {
        "tags": [
          "Audiences"
        ],
        "operationId": "ListAudiences",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Audiences"
        ],
        "operationId": "CreateAudience",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAudienceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/namespaces/{slug}/audiences/{audienceSlug}": {
      "get": {
        "tags": [
          "Audiences"
        ],
        "operationId": "GetAudience",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "audienceSlug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "Audiences"
        ],
        "operationId": "UpdateAudience",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "audienceSlug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAudienceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Audiences"
        ],
        "operationId": "DeleteAudience",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "audienceSlug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/namespaces/{slug}/audiences/{audienceSlug}/members": {
      "get": {
        "tags": [
          "Audiences"
        ],
        "operationId": "ListAudienceMembers",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "audienceSlug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Audiences"
        ],
        "operationId": "AddAudienceMember",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "audienceSlug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddAudienceMemberRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/namespaces/{slug}/audiences/{audienceSlug}/members/{type}/{identifier}": {
      "delete": {
        "tags": [
          "Audiences"
        ],
        "operationId": "RemoveAudienceMember",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "audienceSlug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "identifier",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/namespaces/{slug}/audiences/{audienceSlug}/members/bulk": {
      "post": {
        "tags": [
          "Audiences"
        ],
        "operationId": "BulkAddAudienceMembers",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "audienceSlug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BulkAddAudienceMembersRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/flags": {
      "post": {
        "tags": [
          "Flags"
        ],
        "operationId": "CreateFlag",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateFlagRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "Flags"
        ],
        "operationId": "ListFlags",
        "parameters": [
          {
            "name": "namespace",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "intent",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "environment",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/flags/stale": {
      "get": {
        "tags": [
          "Flags"
        ],
        "operationId": "StaleFlags",
        "parameters": [
          {
            "name": "namespace",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/flags/{key}": {
      "get": {
        "tags": [
          "Flags"
        ],
        "operationId": "GetFlag",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "patch": {
        "tags": [
          "Flags"
        ],
        "operationId": "PatchFlag",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Flags"
        ],
        "operationId": "DeleteFlag",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/flags/{key}/acknowledge": {
      "patch": {
        "tags": [
          "Flags"
        ],
        "operationId": "AcknowledgeFlag",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/AcknowledgeFlagRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/flags/{key}/audit": {
      "get": {
        "tags": [
          "Audit"
        ],
        "operationId": "FlagAudit",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "source",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/namespaces/{slug}/audit": {
      "get": {
        "tags": [
          "Audit"
        ],
        "operationId": "NamespaceAudit",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "source",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/flags/{key}/environments": {
      "get": {
        "tags": [
          "Flags"
        ],
        "operationId": "GetAllFlagEnvs",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/flags/{key}/environments/{env}": {
      "put": {
        "tags": [
          "Flags"
        ],
        "operationId": "UpsertFlagEnv",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "env",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "If-Match",
            "in": "header",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpsertFlagEnvironmentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "Flags"
        ],
        "operationId": "GetFlagEnv",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "env",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/flags/{key}/environments/{env}/variants": {
      "put": {
        "tags": [
          "Flags"
        ],
        "operationId": "PutVariants",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "env",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpsertFlagVariantsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Flags"
        ],
        "operationId": "DeleteVariants",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "env",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "Flags"
        ],
        "operationId": "GetVariants",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "env",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/flags/{key}/environments/{env}/orgs": {
      "get": {
        "tags": [
          "Flags"
        ],
        "operationId": "ListOrgOverrides",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "env",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/flags/{key}/environments/{env}/orgs/{orgId}": {
      "put": {
        "tags": [
          "Flags"
        ],
        "operationId": "PutOrgOverride",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "env",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orgId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpsertOrgOverrideRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Flags"
        ],
        "operationId": "DeleteOrgOverride",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "env",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orgId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "Flags"
        ],
        "operationId": "GetOrgOverride",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "env",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orgId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/flags/{key}/dependencies": {
      "get": {
        "tags": [
          "Flags"
        ],
        "operationId": "GetFlagDependencies",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Flags"
        ],
        "operationId": "AddFlagDependency",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddFlagDependencyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/flags/{key}/dependencies/{dependsOnKey}": {
      "delete": {
        "tags": [
          "Flags"
        ],
        "operationId": "RemoveFlagDependency",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dependsOnKey",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/evaluate": {
      "post": {
        "tags": [
          "Evaluation"
        ],
        "operationId": "Evaluate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EvaluationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/evaluate/batch": {
      "post": {
        "tags": [
          "Evaluation"
        ],
        "operationId": "EvaluateBatch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EvaluationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/events": {
      "post": {
        "tags": [
          "Analytics"
        ],
        "operationId": "TrackOutcomeEvent",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrackOutcomeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/flags/apply": {
      "post": {
        "tags": [
          "Apply"
        ],
        "operationId": "ApplyFlags",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/flags/{key}/environments/{env}/changes": {
      "post": {
        "tags": [
          "Approvals"
        ],
        "operationId": "CreateChangeRequest",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "env",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateChangeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "Approvals"
        ],
        "operationId": "ListChangesForFlag",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "env",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/flags/{key}/environments/{env}/changes/history": {
      "get": {
        "tags": [
          "Approvals"
        ],
        "operationId": "ListChangeHistoryForFlag",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "env",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/namespaces/{slug}/changes": {
      "get": {
        "tags": [
          "Approvals"
        ],
        "operationId": "ListChangesForNamespace",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/flags/{key}/environments/{env}/changes/{id}/approve": {
      "post": {
        "tags": [
          "Approvals"
        ],
        "operationId": "ApproveChange",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "env",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApproveChangeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/flags/{key}/environments/{env}/changes/{id}/reject": {
      "post": {
        "tags": [
          "Approvals"
        ],
        "operationId": "RejectChange",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "env",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RejectChangeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/flags/{key}/environments/{env}/changes/{id}/apply": {
      "post": {
        "tags": [
          "Approvals"
        ],
        "operationId": "ApplyChange",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "env",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/audit-gaps": {
      "get": {
        "tags": [
          "Admin"
        ],
        "operationId": "AuditGaps",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/export": {
      "get": {
        "tags": [
          "Export"
        ],
        "operationId": "Export",
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "namespace",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "environment",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/flags/import": {
      "post": {
        "tags": [
          "Import"
        ],
        "operationId": "ImportFlags",
        "parameters": [
          {
            "name": "dryRun",
            "in": "query",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportFlagsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/triggers/{token}": {
      "post": {
        "tags": [
          "Triggers"
        ],
        "operationId": "FireTrigger",
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/namespaces/{slug}/triggers": {
      "post": {
        "tags": [
          "Triggers"
        ],
        "operationId": "CreateTrigger",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTriggerRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "Triggers"
        ],
        "operationId": "ListTriggers",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/namespaces/{slug}/triggers/{id}": {
      "delete": {
        "tags": [
          "Triggers"
        ],
        "operationId": "RevokeTrigger",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/flags/{key}/environments/{env}/schedules": {
      "post": {
        "tags": [
          "Scheduling"
        ],
        "operationId": "CreateScheduledChange",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "env",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateScheduledChangeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "Scheduling"
        ],
        "operationId": "ListScheduledChanges",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "env",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/flags/{key}/environments/{env}/schedules/{id}": {
      "delete": {
        "tags": [
          "Scheduling"
        ],
        "operationId": "CancelScheduledChange",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "env",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/login": {
      "post": {
        "tags": [
          "Auth"
        ],
        "operationId": "DevLogin",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/LoginRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/logout": {
      "post": {
        "tags": [
          "Auth"
        ],
        "operationId": "DevLogout",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/environments": {
      "get": {
        "tags": [
          "Environments"
        ],
        "operationId": "ListEnvironments",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Environments"
        ],
        "operationId": "CreateEnvironment",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateEnvironmentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/environments/{slug}": {
      "delete": {
        "tags": [
          "Environments"
        ],
        "operationId": "DeleteEnvironment",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AcknowledgeFlagRequest": {
        "required": [
          "note"
        ],
        "type": "object",
        "properties": {
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "AddAudienceMemberRequest": {
        "required": [
          "identifier",
          "identifierType"
        ],
        "type": "object",
        "properties": {
          "identifier": {
            "type": "string"
          },
          "identifierType": {
            "type": "string"
          }
        }
      },
      "AddFlagDependencyRequest": {
        "required": [
          "dependsOnKey"
        ],
        "type": "object",
        "properties": {
          "dependsOnKey": {
            "type": "string"
          }
        }
      },
      "AddMemberRequest": {
        "required": [
          "email",
          "role"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "role": {
            "type": "string"
          }
        }
      },
      "ApplyMode": {
        "enum": [
          "Upsert",
          "Sync",
          "DryRun"
        ],
        "default": "Upsert"
      },
      "ApplyRequest": {
        "required": [
          "flags",
          "environment",
          "namespace",
          "mode",
          "source",
          "sourceDetail"
        ],
        "type": "object",
        "properties": {
          "flags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlagApplyEntry"
            }
          },
          "environment": {
            "type": "string",
            "default": "production"
          },
          "namespace": {
            "type": "string",
            "default": "other-team"
          },
          "mode": {
            "$ref": "#/components/schemas/ApplyMode"
          },
          "source": {
            "type": "string",
            "default": "manual"
          },
          "sourceDetail": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/JsonObject"
              }
            ]
          }
        }
      },
      "ApproveChangeRequest": {
        "required": [
          "reviewNote",
          "githubRunUrl"
        ],
        "type": "object",
        "properties": {
          "reviewNote": {
            "type": [
              "null",
              "string"
            ]
          },
          "githubRunUrl": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "BulkAddAudienceMembersRequest": {
        "required": [
          "identifiers",
          "identifierType"
        ],
        "type": "object",
        "properties": {
          "identifiers": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "identifierType": {
            "type": "string"
          }
        }
      },
      "CreateAudienceRequest": {
        "required": [
          "slug",
          "name",
          "description",
          "conditions"
        ],
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "conditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TargetingRule"
            }
          }
        }
      },
      "CreateChangeRequest": {
        "required": [
          "changeType",
          "changePayloadJson",
          "requestNote"
        ],
        "type": "object",
        "properties": {
          "changeType": {
            "type": "string"
          },
          "changePayloadJson": {
            "type": "string"
          },
          "requestNote": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "CreateEnvironmentRequest": {
        "required": [
          "slug",
          "name"
        ],
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "CreateFlagRequest": {
        "required": [
          "key",
          "name",
          "description",
          "intent",
          "valueType",
          "defaultValue"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "default": "other-team.feature.demo"
          },
          "name": {
            "type": "string",
            "default": "Demo Flag"
          },
          "description": {
            "type": [
              "null",
              "string"
            ],
            "default": "Example flag created from the Bruno collection"
          },
          "intent": {
            "type": "string",
            "default": "release"
          },
          "valueType": {
            "type": "string",
            "default": "boolean"
          },
          "defaultValue": {
            "type": "string",
            "default": "false"
          }
        }
      },
      "CreateNamespaceRequest": {
        "required": [
          "slug",
          "name",
          "domainPrefix"
        ],
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "default": "example-team"
          },
          "name": {
            "type": "string",
            "default": "Example Team"
          },
          "domainPrefix": {
            "type": "string",
            "default": "example-team"
          }
        }
      },
      "CreateScheduledChangeRequest": {
        "required": [
          "changeType",
          "changePayloadJson",
          "scheduledFor",
          "note"
        ],
        "type": "object",
        "properties": {
          "changeType": {
            "type": "string"
          },
          "changePayloadJson": {
            "type": "string"
          },
          "scheduledFor": {
            "type": "string",
            "format": "date-time"
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "CreateServiceAccountRequest": {
        "required": [
          "name",
          "externalId",
          "scopes"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "externalId": {
            "type": "string"
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "CreateTriggerRequest": {
        "required": [
          "name",
          "flagKey",
          "environment",
          "action"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "flagKey": {
            "type": "string"
          },
          "environment": {
            "type": "string"
          },
          "action": {
            "$ref": "#/components/schemas/JsonObject"
          }
        }
      },
      "EvaluationRequest": {
        "required": [
          "environment",
          "userId",
          "orgId",
          "unit",
          "attributes",
          "flags",
          "namespaceHint"
        ],
        "type": "object",
        "properties": {
          "environment": {
            "type": "string",
            "default": "production"
          },
          "userId": {
            "type": "string",
            "default": "user-001"
          },
          "orgId": {
            "type": [
              "null",
              "string"
            ],
            "default": "org-001"
          },
          "unit": {
            "type": "string",
            "default": "user"
          },
          "attributes": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "flags": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "namespaceHint": {
            "type": [
              "null",
              "string"
            ],
            "default": "other-team"
          }
        }
      },
      "FlagApplyEntry": {
        "required": [
          "key",
          "name",
          "description",
          "intent",
          "valueType",
          "defaultValue",
          "enabled",
          "rolloutPercent",
          "variants",
          "rulesRaw"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "name": {
            "type": [
              "null",
              "string"
            ]
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "intent": {
            "type": "string"
          },
          "valueType": {
            "type": "string"
          },
          "defaultValue": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "rolloutPercent": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "variants": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/FlagVariantDto"
            }
          },
          "rulesRaw": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/JsonObject"
              }
            ]
          }
        }
      },
      "FlagVariantDto": {
        "required": [
          "variantKey",
          "value",
          "weight"
        ],
        "type": "object",
        "properties": {
          "variantKey": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "weight": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "ImportFlagEntry": {
        "required": [
          "key",
          "name",
          "intent",
          "valueType",
          "defaultValue"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "intent": {
            "type": "string"
          },
          "valueType": {
            "type": "string"
          },
          "defaultValue": {
            "type": "string"
          }
        }
      },
      "ImportFlagsRequest": {
        "required": [
          "flags"
        ],
        "type": "object",
        "properties": {
          "flags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImportFlagEntry"
            }
          }
        }
      },
      "JsonObject": {
        "type": "object"
      },
      "LoginRequest": {
        "required": [
          "email"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "default": "tapan.patel@lanterncare.com"
          }
        }
      },
      "PatchMemberRequest": {
        "required": [
          "role"
        ],
        "type": "object",
        "properties": {
          "role": {
            "type": "string"
          }
        }
      },
      "PatchNamespaceRequest": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          }
        }
      },
      "RegisterAttributeRequest": {
        "required": [
          "key",
          "description",
          "example"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "example": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "RejectChangeRequest": {
        "required": [
          "reviewNote"
        ],
        "type": "object",
        "properties": {
          "reviewNote": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "RuleOperator": {
        "enum": [
          "eq",
          "neq",
          "in",
          "not_in",
          "gt",
          "gte",
          "lt",
          "lte",
          "contains",
          "not_contains",
          "starts_with",
          "ends_with",
          "regex",
          "exists",
          "not_exists",
          "before",
          "after",
          "semver_gt",
          "semver_gte",
          "semver_lt",
          "semver_lte",
          "semver_eq"
        ]
      },
      "TargetingRule": {
        "required": [
          "attribute",
          "operator",
          "value",
          "variantKey",
          "rolloutPercent"
        ],
        "type": "object",
        "properties": {
          "attribute": {
            "type": "string"
          },
          "operator": {
            "$ref": "#/components/schemas/RuleOperator"
          },
          "value": {
            "type": "string"
          },
          "variantKey": {
            "type": [
              "null",
              "string"
            ]
          },
          "rolloutPercent": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "audienceId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "TrackOutcomeRequest": {
        "required": [
          "userId",
          "orgId",
          "environment",
          "eventName",
          "value"
        ],
        "type": "object",
        "properties": {
          "userId": {
            "type": "string"
          },
          "orgId": {
            "type": [
              "null",
              "string"
            ]
          },
          "environment": {
            "type": "string"
          },
          "eventName": {
            "type": "string"
          },
          "value": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "UpdateAudienceRequest": {
        "required": [
          "name",
          "description",
          "conditions"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "conditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TargetingRule"
            }
          }
        }
      },
      "UpsertFlagEnvironmentRequest": {
        "required": [
          "enabled",
          "rolloutPercent",
          "rules"
        ],
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "rolloutPercent": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "rules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TargetingRule"
            }
          }
        }
      },
      "UpsertFlagVariantsRequest": {
        "required": [
          "variants"
        ],
        "type": "object",
        "properties": {
          "variants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlagVariantDto"
            }
          }
        }
      },
      "UpsertOrgOverrideRequest": {
        "required": [
          "orgId",
          "enabled",
          "variantKey"
        ],
        "type": "object",
        "properties": {
          "orgId": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "variantKey": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "ValidateFlagKeyRequest": {
        "required": [
          "key"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Validation"
    },
    {
      "name": "Users"
    },
    {
      "name": "Namespaces"
    },
    {
      "name": "Attributes"
    },
    {
      "name": "Audiences"
    },
    {
      "name": "Flags"
    },
    {
      "name": "Audit"
    },
    {
      "name": "Evaluation"
    },
    {
      "name": "Analytics"
    },
    {
      "name": "Apply"
    },
    {
      "name": "Approvals"
    },
    {
      "name": "Admin"
    },
    {
      "name": "Export"
    },
    {
      "name": "Import"
    },
    {
      "name": "Triggers"
    },
    {
      "name": "Scheduling"
    },
    {
      "name": "Auth"
    },
    {
      "name": "Environments"
    }
  ]
}