@@ -108555,6 +108555,181 @@ components:
108555108555 required:
108556108556 - data
108557108557 type: object
108558+ SavedFilterAttributes:
108559+ description: Saved filter details, including the full targeting rules and conditions.
108560+ properties:
108561+ archived_at:
108562+ description: The time the saved filter was archived. Omitted when the filter is not archived.
108563+ example: "2026-01-03T12:00:00Z"
108564+ format: date-time
108565+ type: string
108566+ created_at:
108567+ description: The time the saved filter was created.
108568+ example: "2026-01-01T12:00:00Z"
108569+ format: date-time
108570+ type: string
108571+ created_by:
108572+ description: The ID of the user who created the saved filter.
108573+ example: "550e8400-e29b-41d4-a716-446655440091"
108574+ type: string
108575+ creation_type:
108576+ $ref: "#/components/schemas/SavedFilterCreationType"
108577+ description:
108578+ description: A description of the saved filter. Omitted when no description is set.
108579+ example: Users selected by email address or organization ID.
108580+ type: string
108581+ migration_metadata:
108582+ description: Optional JSON metadata supplied by migration tools for tracking the source of a saved filter.
108583+ example:
108584+ provider: launchdarkly
108585+ segment_key: early-access-users
108586+ name:
108587+ description: The name of the saved filter.
108588+ example: Early access users
108589+ type: string
108590+ targeting_rules:
108591+ description: Targeting rules combined with OR. Conditions within each rule are combined with AND. Both saved lists and saved rules use this structure.
108592+ items:
108593+ $ref: "#/components/schemas/SavedFilterTargetingRule"
108594+ type: array
108595+ updated_at:
108596+ description: The time the saved filter was last updated.
108597+ example: "2026-01-02T12:00:00Z"
108598+ format: date-time
108599+ type: string
108600+ required:
108601+ - name
108602+ - creation_type
108603+ - targeting_rules
108604+ - created_by
108605+ - created_at
108606+ - updated_at
108607+ type: object
108608+ SavedFilterCondition:
108609+ description: An inline condition in a saved filter targeting rule.
108610+ properties:
108611+ attribute:
108612+ description: The attribute evaluated by the condition.
108613+ example: email
108614+ type: string
108615+ id:
108616+ description: The ID of the condition.
108617+ example: "550e8400-e29b-41d4-a716-446655440093"
108618+ format: uuid
108619+ type: string
108620+ operator:
108621+ $ref: "#/components/schemas/SavedFilterConditionOperator"
108622+ value:
108623+ description: Values used by the condition operator.
108624+ example:
108625+ - user@example.com
108626+ items:
108627+ type: string
108628+ type: array
108629+ required:
108630+ - id
108631+ - operator
108632+ - attribute
108633+ - value
108634+ type: object
108635+ SavedFilterConditionOperator:
108636+ description: The comparison operator used by a saved filter condition.
108637+ enum:
108638+ - LT
108639+ - LTE
108640+ - GT
108641+ - GTE
108642+ - MATCHES
108643+ - NOT_MATCHES
108644+ - ONE_OF
108645+ - NOT_ONE_OF
108646+ - IS_NULL
108647+ - EQUALS
108648+ - SEMVER_EQ
108649+ - SEMVER_NEQ
108650+ - SEMVER_LT
108651+ - SEMVER_LTE
108652+ - SEMVER_GT
108653+ - SEMVER_GTE
108654+ example: ONE_OF
108655+ type: string
108656+ x-enum-varnames:
108657+ - LT
108658+ - LTE
108659+ - GT
108660+ - GTE
108661+ - MATCHES
108662+ - NOT_MATCHES
108663+ - ONE_OF
108664+ - NOT_ONE_OF
108665+ - IS_NULL
108666+ - EQUALS
108667+ - SEMVER_EQ
108668+ - SEMVER_NEQ
108669+ - SEMVER_LT
108670+ - SEMVER_LTE
108671+ - SEMVER_GT
108672+ - SEMVER_GTE
108673+ SavedFilterCreationType:
108674+ description: How the saved filter was authored. RULES indicates rule-based authoring and LIST indicates list import. Both types return targeting rules and conditions.
108675+ enum:
108676+ - RULES
108677+ - LIST
108678+ example: RULES
108679+ type: string
108680+ x-enum-varnames:
108681+ - RULES
108682+ - LIST
108683+ SavedFilterData:
108684+ description: A saved filter resource.
108685+ properties:
108686+ attributes:
108687+ $ref: "#/components/schemas/SavedFilterAttributes"
108688+ id:
108689+ description: The ID of the saved filter.
108690+ example: "550e8400-e29b-41d4-a716-446655440090"
108691+ format: uuid
108692+ type: string
108693+ type:
108694+ $ref: "#/components/schemas/SavedFilterDataType"
108695+ required:
108696+ - id
108697+ - type
108698+ - attributes
108699+ type: object
108700+ SavedFilterDataType:
108701+ description: The saved filter resource type.
108702+ enum:
108703+ - saved-filters
108704+ example: saved-filters
108705+ type: string
108706+ x-enum-varnames:
108707+ - SAVED_FILTERS
108708+ SavedFilterResponse:
108709+ description: Response containing a saved filter and its targeting rules.
108710+ properties:
108711+ data:
108712+ $ref: "#/components/schemas/SavedFilterData"
108713+ required:
108714+ - data
108715+ type: object
108716+ SavedFilterTargetingRule:
108717+ description: A targeting rule in a saved filter. A rule matches when all its conditions match.
108718+ properties:
108719+ conditions:
108720+ description: Conditions combined with AND within this targeting rule.
108721+ items:
108722+ $ref: "#/components/schemas/SavedFilterCondition"
108723+ type: array
108724+ id:
108725+ description: The ID of the targeting rule.
108726+ example: "550e8400-e29b-41d4-a716-446655440092"
108727+ format: uuid
108728+ type: string
108729+ required:
108730+ - id
108731+ - conditions
108732+ type: object
108558108733 ScaRequest:
108559108734 description: The top-level request object for submitting a Software Composition Analysis (SCA) scan result.
108560108735 properties:
@@ -171735,6 +171910,109 @@ paths:
171735171910 operator: AND
171736171911 permissions:
171737171912 - feature_flag_config_write
171913+ /api/v2/feature-flags/saved-filters/{saved_filter_id}:
171914+ get:
171915+ description: |-
171916+ Returns a saved filter by ID, including its full targeting rules, conditions, and values.
171917+ Supports both saved lists and saved rules. Targeting rules are combined with OR,
171918+ and conditions within each rule are combined with AND.
171919+ Returns the stored filter definition rather than evaluating it against users or organizations.
171920+ Archived filters can be retrieved. Filters that are deleted or belong to another organization return a not found error.
171921+ operationId: GetSavedFilter
171922+ parameters:
171923+ - description: The ID of the saved filter.
171924+ example: "550e8400-e29b-41d4-a716-446655440090"
171925+ in: path
171926+ name: saved_filter_id
171927+ required: true
171928+ schema:
171929+ format: uuid
171930+ type: string
171931+ responses:
171932+ "200":
171933+ content:
171934+ application/json:
171935+ examples:
171936+ default:
171937+ summary: A saved rule matching an email address OR an organization ID
171938+ value:
171939+ data:
171940+ attributes:
171941+ created_at: "2026-01-01T12:00:00Z"
171942+ created_by: "550e8400-e29b-41d4-a716-446655440091"
171943+ creation_type: RULES
171944+ description: Users selected by email address or organization ID.
171945+ name: Early access users
171946+ targeting_rules:
171947+ - conditions:
171948+ - attribute: email
171949+ id: "550e8400-e29b-41d4-a716-446655440093"
171950+ operator: ONE_OF
171951+ value: ["user@example.com"]
171952+ id: "550e8400-e29b-41d4-a716-446655440092"
171953+ - conditions:
171954+ - attribute: org_id
171955+ id: "550e8400-e29b-41d4-a716-446655440095"
171956+ operator: ONE_OF
171957+ value: ["12345", "67890"]
171958+ id: "550e8400-e29b-41d4-a716-446655440094"
171959+ updated_at: "2026-01-02T12:00:00Z"
171960+ id: "550e8400-e29b-41d4-a716-446655440090"
171961+ type: saved-filters
171962+ saved_list:
171963+ summary: A saved list containing user IDs
171964+ value:
171965+ data:
171966+ attributes:
171967+ created_at: "2026-01-01T12:00:00Z"
171968+ created_by: "550e8400-e29b-41d4-a716-446655440091"
171969+ creation_type: LIST
171970+ name: Early access user list
171971+ targeting_rules:
171972+ - conditions:
171973+ - attribute: user_id
171974+ id: "550e8400-e29b-41d4-a716-446655440098"
171975+ operator: ONE_OF
171976+ value: ["user-123", "user-456"]
171977+ id: "550e8400-e29b-41d4-a716-446655440097"
171978+ updated_at: "2026-01-02T12:00:00Z"
171979+ id: "550e8400-e29b-41d4-a716-446655440096"
171980+ type: saved-filters
171981+ schema:
171982+ $ref: "#/components/schemas/SavedFilterResponse"
171983+ description: OK
171984+ "400":
171985+ content:
171986+ application/json:
171987+ schema:
171988+ $ref: "#/components/schemas/JSONAPIErrorResponse"
171989+ description: Bad Request
171990+ "403":
171991+ content:
171992+ application/json:
171993+ schema:
171994+ $ref: "#/components/schemas/APIErrorResponse"
171995+ description: Forbidden
171996+ "404":
171997+ content:
171998+ application/json:
171999+ schema:
172000+ $ref: "#/components/schemas/JSONAPIErrorResponse"
172001+ description: Not Found
172002+ "429":
172003+ $ref: "#/components/responses/TooManyRequestsResponse"
172004+ security:
172005+ - apiKeyAuth: []
172006+ appKeyAuth: []
172007+ - AuthZ:
172008+ - feature_flag_config_read
172009+ summary: Get a saved filter
172010+ tags:
172011+ - Feature Flags
172012+ x-permission:
172013+ operator: AND
172014+ permissions:
172015+ - feature_flag_config_read
171738172016 /api/v2/feature-flags/{feature_flag_id}:
171739172017 get:
171740172018 description: |-
0 commit comments