openapi: 3.2.0 info: title: api Flipt API version: 1.47.0 servers: - url: http://localhost:8080 security: - bearerAuth: [] tags: - name: Flipt paths: /api/v1/namespaces: get: tags: - Flipt operationId: listNamespaces parameters: - name: limit in: query schema: type: integer format: int32 - name: offset in: query schema: type: integer format: int32 - name: pageToken in: query schema: type: string - name: reference in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/NamespaceList' summary: List namespaces x-summary-source: derived post: tags: - Flipt operationId: createNamespace requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateNamespaceRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Namespace' summary: Create namespace x-summary-source: derived /api/v1/namespaces/{key}: get: tags: - Flipt operationId: getNamespace parameters: - name: key in: path required: true schema: type: string - name: reference in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Namespace' summary: Get namespace x-summary-source: derived put: tags: - Flipt operationId: updateNamespace parameters: - name: key in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateNamespaceRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Namespace' summary: Update namespace x-summary-source: derived delete: tags: - Flipt operationId: deleteNamespace parameters: - name: key in: path required: true schema: type: string - name: force in: query schema: type: boolean responses: '200': description: OK content: {} summary: Delete namespace x-summary-source: derived /api/v1/namespaces/{namespaceKey}/flags: get: tags: - Flipt operationId: listFlags parameters: - name: namespaceKey in: path required: true schema: type: string - name: limit in: query schema: type: integer format: int32 - name: offset in: query schema: type: integer format: int32 - name: pageToken in: query schema: type: string - name: reference in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/FlagList' summary: List flags x-summary-source: derived post: tags: - Flipt operationId: createFlag parameters: - name: namespaceKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateFlagRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Flag' summary: Create flag x-summary-source: derived /api/v1/namespaces/{namespaceKey}/flags/{flagKey}/rollouts: get: tags: - Flipt operationId: listRollouts parameters: - name: namespaceKey in: path required: true schema: type: string - name: flagKey in: path required: true schema: type: string - name: limit in: query schema: type: integer format: int32 - name: pageToken in: query schema: type: string - name: reference in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/RolloutList' summary: List rollouts x-summary-source: derived post: tags: - Flipt operationId: createRollout parameters: - name: namespaceKey in: path required: true schema: type: string - name: flagKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateRolloutRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Rollout' summary: Create rollout x-summary-source: derived /api/v1/namespaces/{namespaceKey}/flags/{flagKey}/rollouts/order: put: tags: - Flipt operationId: orderRollouts parameters: - name: namespaceKey in: path required: true schema: type: string - name: flagKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/OrderRolloutsRequest' required: true responses: '200': description: OK content: {} summary: Order rollouts x-summary-source: derived /api/v1/namespaces/{namespaceKey}/flags/{flagKey}/rollouts/{id}: get: tags: - Flipt operationId: getRollout parameters: - name: namespaceKey in: path required: true schema: type: string - name: flagKey in: path required: true schema: type: string - name: id in: path required: true schema: type: string - name: reference in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Rollout' summary: Get rollout x-summary-source: derived put: tags: - Flipt operationId: updateRollout parameters: - name: namespaceKey in: path required: true schema: type: string - name: flagKey in: path required: true schema: type: string - name: id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateRolloutRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Rollout' summary: Update rollout x-summary-source: derived delete: tags: - Flipt operationId: deleteRollout parameters: - name: namespaceKey in: path required: true schema: type: string - name: flagKey in: path required: true schema: type: string - name: id in: path required: true schema: type: string responses: '200': description: OK content: {} summary: Delete rollout x-summary-source: derived /api/v1/namespaces/{namespaceKey}/flags/{flagKey}/rules: get: tags: - Flipt operationId: listRules parameters: - name: namespaceKey in: path required: true schema: type: string - name: flagKey in: path required: true schema: type: string - name: limit in: query schema: type: integer format: int32 - name: offset in: query schema: type: integer format: int32 - name: pageToken in: query schema: type: string - name: reference in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/RuleList' summary: List rules x-summary-source: derived post: tags: - Flipt operationId: createRule parameters: - name: namespaceKey in: path required: true schema: type: string - name: flagKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateRuleRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Rule' summary: Create rule x-summary-source: derived /api/v1/namespaces/{namespaceKey}/flags/{flagKey}/rules/order: put: tags: - Flipt operationId: orderRules parameters: - name: namespaceKey in: path required: true schema: type: string - name: flagKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/OrderRulesRequest' required: true responses: '200': description: OK content: {} summary: Order rules x-summary-source: derived /api/v1/namespaces/{namespaceKey}/flags/{flagKey}/rules/{id}: get: tags: - Flipt operationId: getRule parameters: - name: namespaceKey in: path required: true schema: type: string - name: flagKey in: path required: true schema: type: string - name: id in: path required: true schema: type: string - name: reference in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Rule' summary: Get rule x-summary-source: derived put: tags: - Flipt operationId: updateRule parameters: - name: namespaceKey in: path required: true schema: type: string - name: flagKey in: path required: true schema: type: string - name: id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateRuleRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Rule' summary: Update rule x-summary-source: derived delete: tags: - Flipt operationId: deleteRule parameters: - name: namespaceKey in: path required: true schema: type: string - name: flagKey in: path required: true schema: type: string - name: id in: path required: true schema: type: string responses: '200': description: OK content: {} summary: Delete rule x-summary-source: derived /api/v1/namespaces/{namespaceKey}/flags/{flagKey}/rules/{ruleId}/distributions: post: tags: - Flipt operationId: createDistribution parameters: - name: namespaceKey in: path required: true schema: type: string - name: flagKey in: path required: true schema: type: string - name: ruleId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateDistributionRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Distribution' summary: Create distribution x-summary-source: derived /api/v1/namespaces/{namespaceKey}/flags/{flagKey}/rules/{ruleId}/distributions/{id}: put: tags: - Flipt operationId: updateDistribution parameters: - name: namespaceKey in: path required: true schema: type: string - name: flagKey in: path required: true schema: type: string - name: ruleId in: path required: true schema: type: string - name: id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateDistributionRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Distribution' summary: Update distribution x-summary-source: derived delete: tags: - Flipt operationId: deleteDistribution parameters: - name: namespaceKey in: path required: true schema: type: string - name: flagKey in: path required: true schema: type: string - name: ruleId in: path required: true schema: type: string - name: id in: path required: true schema: type: string - name: variantId in: query schema: type: string responses: '200': description: OK content: {} summary: Delete distribution x-summary-source: derived /api/v1/namespaces/{namespaceKey}/flags/{flagKey}/variants: post: tags: - Flipt operationId: createVariant parameters: - name: namespaceKey in: path required: true schema: type: string - name: flagKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateVariantRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Variant' summary: Create variant x-summary-source: derived /api/v1/namespaces/{namespaceKey}/flags/{flagKey}/variants/{id}: put: tags: - Flipt operationId: updateVariant parameters: - name: namespaceKey in: path required: true schema: type: string - name: flagKey in: path required: true schema: type: string - name: id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateVariantRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Variant' summary: Update variant x-summary-source: derived delete: tags: - Flipt operationId: deleteVariant parameters: - name: namespaceKey in: path required: true schema: type: string - name: flagKey in: path required: true schema: type: string - name: id in: path required: true schema: type: string responses: '200': description: OK content: {} summary: Delete variant x-summary-source: derived /api/v1/namespaces/{namespaceKey}/flags/{key}: get: tags: - Flipt operationId: getFlag parameters: - name: namespaceKey in: path required: true schema: type: string - name: key in: path required: true schema: type: string - name: reference in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Flag' summary: Get flag x-summary-source: derived put: tags: - Flipt operationId: updateFlag parameters: - name: namespaceKey in: path required: true schema: type: string - name: key in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateFlagRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Flag' summary: Update flag x-summary-source: derived delete: tags: - Flipt operationId: deleteFlag parameters: - name: namespaceKey in: path required: true schema: type: string - name: key in: path required: true schema: type: string responses: '200': description: OK content: {} summary: Delete flag x-summary-source: derived /api/v1/namespaces/{namespaceKey}/segments: get: tags: - Flipt operationId: listSegments parameters: - name: namespaceKey in: path required: true schema: type: string - name: limit in: query schema: type: integer format: int32 - name: offset in: query schema: type: integer format: int32 - name: pageToken in: query schema: type: string - name: reference in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/SegmentList' summary: List segments x-summary-source: derived post: tags: - Flipt operationId: createSegment parameters: - name: namespaceKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateSegmentRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Segment' summary: Create segment x-summary-source: derived /api/v1/namespaces/{namespaceKey}/segments/{key}: get: tags: - Flipt operationId: getSegment parameters: - name: namespaceKey in: path required: true schema: type: string - name: key in: path required: true schema: type: string - name: reference in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Segment' summary: Get segment x-summary-source: derived put: tags: - Flipt operationId: updateSegment parameters: - name: namespaceKey in: path required: true schema: type: string - name: key in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateSegmentRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Segment' summary: Update segment x-summary-source: derived delete: tags: - Flipt operationId: deleteSegment parameters: - name: namespaceKey in: path required: true schema: type: string - name: key in: path required: true schema: type: string responses: '200': description: OK content: {} summary: Delete segment x-summary-source: derived /api/v1/namespaces/{namespaceKey}/segments/{segmentKey}/constraints: post: tags: - Flipt operationId: createConstraint parameters: - name: namespaceKey in: path required: true schema: type: string - name: segmentKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateConstraintRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Constraint' summary: Create constraint x-summary-source: derived /api/v1/namespaces/{namespaceKey}/segments/{segmentKey}/constraints/{id}: put: tags: - Flipt operationId: updateConstraint parameters: - name: namespaceKey in: path required: true schema: type: string - name: segmentKey in: path required: true schema: type: string - name: id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateConstraintRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Constraint' summary: Update constraint x-summary-source: derived delete: tags: - Flipt operationId: deleteConstraint parameters: - name: namespaceKey in: path required: true schema: type: string - name: segmentKey in: path required: true schema: type: string - name: id in: path required: true schema: type: string responses: '200': description: OK content: {} summary: Delete constraint x-summary-source: derived components: schemas: Namespace: type: object properties: key: type: string name: type: string description: type: string protected: type: boolean createdAt: type: string format: date-time updatedAt: type: string format: date-time UpdateDistributionRequest: required: - variantId - rollout type: object properties: id: type: string flagKey: type: string ruleId: type: string variantId: type: string rollout: type: number format: float namespaceKey: type: string CreateRuleRequest: required: - rank type: object properties: flagKey: type: string segmentKey: type: string rank: type: integer format: int32 namespaceKey: type: string segmentKeys: type: array items: type: string segmentOperator: enum: - OR_SEGMENT_OPERATOR - AND_SEGMENT_OPERATOR type: string format: enum CreateConstraintRequest: required: - type - property - operator type: object properties: segmentKey: type: string type: enum: - UNKNOWN_COMPARISON_TYPE - STRING_COMPARISON_TYPE - NUMBER_COMPARISON_TYPE - BOOLEAN_COMPARISON_TYPE - DATETIME_COMPARISON_TYPE - ENTITY_ID_COMPARISON_TYPE type: string format: enum property: type: string operator: type: string value: type: string namespaceKey: type: string description: type: string RolloutThreshold: type: object properties: percentage: type: number format: float value: type: boolean RolloutList: type: object properties: rules: type: array items: $ref: '#/components/schemas/Rollout' nextPageToken: type: string totalCount: type: integer format: int32 CreateVariantRequest: required: - key type: object properties: flagKey: type: string key: type: string name: type: string description: type: string attachment: type: string namespaceKey: type: string Segment: type: object properties: key: type: string name: type: string description: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time constraints: type: array items: $ref: '#/components/schemas/Constraint' matchType: enum: - ALL_MATCH_TYPE - ANY_MATCH_TYPE type: string format: enum namespaceKey: type: string CreateDistributionRequest: required: - variantId - rollout type: object properties: flagKey: type: string ruleId: type: string variantId: type: string rollout: type: number format: float namespaceKey: type: string Distribution: type: object properties: id: type: string ruleId: type: string variantId: type: string rollout: type: number format: float createdAt: type: string format: date-time updatedAt: type: string format: date-time CreateSegmentRequest: required: - key - name - matchType type: object properties: key: type: string name: type: string description: type: string matchType: enum: - ALL_MATCH_TYPE - ANY_MATCH_TYPE type: string format: enum namespaceKey: type: string CreateFlagRequest: required: - key - name - type type: object properties: key: type: string name: type: string description: type: string enabled: type: boolean namespaceKey: type: string type: enum: - VARIANT_FLAG_TYPE - BOOLEAN_FLAG_TYPE type: string format: enum metadata: type: object NamespaceList: type: object properties: namespaces: type: array items: $ref: '#/components/schemas/Namespace' nextPageToken: type: string totalCount: type: integer format: int32 Rollout: type: object properties: id: type: string namespaceKey: type: string flagKey: type: string type: enum: - UNKNOWN_ROLLOUT_TYPE - SEGMENT_ROLLOUT_TYPE - THRESHOLD_ROLLOUT_TYPE type: string format: enum rank: type: integer format: int32 description: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time segment: $ref: '#/components/schemas/RolloutSegment' threshold: $ref: '#/components/schemas/RolloutThreshold' CreateRolloutRequest: required: - rank type: object properties: namespaceKey: type: string flagKey: type: string rank: type: integer format: int32 description: type: string segment: $ref: '#/components/schemas/RolloutSegment' threshold: $ref: '#/components/schemas/RolloutThreshold' FlagList: type: object properties: flags: type: array items: $ref: '#/components/schemas/Flag' nextPageToken: type: string totalCount: type: integer format: int32 UpdateRolloutRequest: type: object properties: id: type: string namespaceKey: type: string flagKey: type: string description: type: string segment: $ref: '#/components/schemas/RolloutSegment' threshold: $ref: '#/components/schemas/RolloutThreshold' OrderRulesRequest: required: - ruleIds type: object properties: flagKey: type: string ruleIds: type: array items: type: string namespaceKey: type: string UpdateVariantRequest: required: - key type: object properties: id: type: string flagKey: type: string key: type: string name: type: string description: type: string attachment: type: string namespaceKey: type: string Constraint: type: object properties: id: type: string segmentKey: type: string type: enum: - UNKNOWN_COMPARISON_TYPE - STRING_COMPARISON_TYPE - NUMBER_COMPARISON_TYPE - BOOLEAN_COMPARISON_TYPE - DATETIME_COMPARISON_TYPE - ENTITY_ID_COMPARISON_TYPE type: string format: enum property: type: string operator: type: string value: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time namespaceKey: type: string description: type: string UpdateConstraintRequest: required: - type - property - operator type: object properties: id: type: string segmentKey: type: string type: enum: - UNKNOWN_COMPARISON_TYPE - STRING_COMPARISON_TYPE - NUMBER_COMPARISON_TYPE - BOOLEAN_COMPARISON_TYPE - DATETIME_COMPARISON_TYPE - ENTITY_ID_COMPARISON_TYPE type: string format: enum property: type: string operator: type: string value: type: string namespaceKey: type: string description: type: string Rule: type: object properties: id: type: string flagKey: type: string segmentKey: type: string distributions: type: array items: $ref: '#/components/schemas/Distribution' rank: type: integer format: int32 createdAt: type: string format: date-time updatedAt: type: string format: date-time namespaceKey: type: string segmentKeys: type: array items: type: string segmentOperator: enum: - OR_SEGMENT_OPERATOR - AND_SEGMENT_OPERATOR type: string format: enum OrderRolloutsRequest: required: - rolloutIds type: object properties: flagKey: type: string namespaceKey: type: string rolloutIds: type: array items: type: string Variant: type: object properties: id: type: string flagKey: type: string key: type: string name: type: string description: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time attachment: type: string namespaceKey: type: string SegmentList: type: object properties: segments: type: array items: $ref: '#/components/schemas/Segment' nextPageToken: type: string totalCount: type: integer format: int32 UpdateFlagRequest: required: - name type: object properties: key: type: string name: type: string description: type: string enabled: type: boolean namespaceKey: type: string defaultVariantId: type: string metadata: type: object RuleList: type: object properties: rules: type: array items: $ref: '#/components/schemas/Rule' nextPageToken: type: string totalCount: type: integer format: int32 CreateNamespaceRequest: required: - key - name type: object properties: key: type: string name: type: string description: type: string UpdateRuleRequest: type: object properties: id: type: string flagKey: type: string segmentKey: type: string namespaceKey: type: string segmentKeys: type: array items: type: string segmentOperator: enum: - OR_SEGMENT_OPERATOR - AND_SEGMENT_OPERATOR type: string format: enum UpdateNamespaceRequest: required: - name type: object properties: key: type: string name: type: string description: type: string Flag: type: object properties: key: type: string name: type: string description: type: string enabled: type: boolean createdAt: type: string format: date-time updatedAt: type: string format: date-time variants: type: array items: $ref: '#/components/schemas/Variant' namespaceKey: type: string type: enum: - VARIANT_FLAG_TYPE - BOOLEAN_FLAG_TYPE type: string format: enum defaultVariant: $ref: '#/components/schemas/Variant' metadata: type: object RolloutSegment: type: object properties: segmentKey: type: string value: type: boolean segmentKeys: type: array items: type: string segmentOperator: enum: - OR_SEGMENT_OPERATOR - AND_SEGMENT_OPERATOR type: string format: enum UpdateSegmentRequest: required: - name - matchType type: object properties: key: type: string name: type: string description: type: string matchType: enum: - ALL_MATCH_TYPE - ANY_MATCH_TYPE type: string format: enum namespaceKey: type: string securitySchemes: bearerAuth: type: http scheme: bearer jwtAuth: type: http scheme: JWT