# Flagship # Apps ## List apps `client.Flagship.Apps.List(ctx, query) (*SinglePage[AppListResponse], error)` **get** `/accounts/{account_id}/flagship/apps` Lists all apps in the account. Returns identity and audit fields only — flag definitions are not included. ### Parameters - `query AppListParams` - `AccountID param.Field[string]` Cloudflare account ID. ### Returns - `type AppListResponse struct{…}` - `ID string` - `CreatedAt string` - `Name string` - `UpdatedAt string` - `UpdatedBy string` Email of the actor who last modified the app, or `edge-gateway` for gateway-authenticated changes. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/flagship" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) page, err := client.Flagship.Apps.List(context.TODO(), flagship.AppListParams{ AccountID: cloudflare.F("account_id"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### Response ```json { "errors": [ { "message": "message" } ], "messages": [ { "message": "message" } ], "result": [ { "id": "id", "created_at": "created_at", "name": "name", "updated_at": "updated_at", "updated_by": "updated_by" } ], "success": true } ``` ## Get app `client.Flagship.Apps.Get(ctx, appID, query) (*AppGetResponse, error)` **get** `/accounts/{account_id}/flagship/apps/{app_id}` Returns an app's name and audit fields. Flag definitions are not included. ### Parameters - `appID string` App identifier. - `query AppGetParams` - `AccountID param.Field[string]` Cloudflare account ID. ### Returns - `type AppGetResponse struct{…}` - `ID string` - `CreatedAt string` - `Name string` - `UpdatedAt string` - `UpdatedBy string` Email of the actor who last modified the app, or `edge-gateway` for gateway-authenticated changes. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/flagship" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) app, err := client.Flagship.Apps.Get( context.TODO(), "app_id", flagship.AppGetParams{ AccountID: cloudflare.F("account_id"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", app.ID) } ``` #### Response ```json { "errors": [ { "message": "message" } ], "messages": [ { "message": "message" } ], "result": { "id": "id", "created_at": "created_at", "name": "name", "updated_at": "updated_at", "updated_by": "updated_by" }, "success": true } ``` ## Create app `client.Flagship.Apps.New(ctx, params) (*AppNewResponse, error)` **post** `/accounts/{account_id}/flagship/apps` Creates an app. The returned `id` is used in all subsequent flag, changelog, and evaluation requests. ### Parameters - `params AppNewParams` - `AccountID param.Field[string]` Path param: Cloudflare account ID. - `Name param.Field[string]` Body param ### Returns - `type AppNewResponse struct{…}` - `ID string` - `CreatedAt string` - `Name string` - `UpdatedAt string` - `UpdatedBy string` Email of the actor who last modified the app, or `edge-gateway` for gateway-authenticated changes. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/flagship" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) app, err := client.Flagship.Apps.New(context.TODO(), flagship.AppNewParams{ AccountID: cloudflare.F("account_id"), Name: cloudflare.F("x"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", app.ID) } ``` #### Response ```json { "errors": [ { "message": "message" } ], "messages": [ { "message": "message" } ], "result": { "id": "id", "created_at": "created_at", "name": "name", "updated_at": "updated_at", "updated_by": "updated_by" }, "success": true } ``` ## Update app `client.Flagship.Apps.Update(ctx, appID, params) (*AppUpdateResponse, error)` **put** `/accounts/{account_id}/flagship/apps/{app_id}` Updates an app. Only `name` is mutable. ### Parameters - `appID string` App identifier. - `params AppUpdateParams` - `AccountID param.Field[string]` Path param: Cloudflare account ID. - `Name param.Field[string]` Body param ### Returns - `type AppUpdateResponse struct{…}` - `ID string` - `CreatedAt string` - `Name string` - `UpdatedAt string` - `UpdatedBy string` Email of the actor who last modified the app, or `edge-gateway` for gateway-authenticated changes. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/flagship" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) app, err := client.Flagship.Apps.Update( context.TODO(), "app_id", flagship.AppUpdateParams{ AccountID: cloudflare.F("account_id"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", app.ID) } ``` #### Response ```json { "errors": [ { "message": "message" } ], "messages": [ { "message": "message" } ], "result": { "id": "id", "created_at": "created_at", "name": "name", "updated_at": "updated_at", "updated_by": "updated_by" }, "success": true } ``` ## Delete app `client.Flagship.Apps.Delete(ctx, appID, body) (*AppDeleteResponse, error)` **delete** `/accounts/{account_id}/flagship/apps/{app_id}` Deletes an app and all its flags and changelog history. Returns 409 if any Worker still references this app via a Flagship binding. ### Parameters - `appID string` App identifier. - `body AppDeleteParams` - `AccountID param.Field[string]` Cloudflare account ID. ### Returns - `type AppDeleteResponse struct{…}` - `ID string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/flagship" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) app, err := client.Flagship.Apps.Delete( context.TODO(), "app_id", flagship.AppDeleteParams{ AccountID: cloudflare.F("account_id"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", app.ID) } ``` #### Response ```json { "errors": [ { "message": "message" } ], "messages": [ { "message": "message" } ], "result": { "id": "id" }, "success": true } ``` # Flags ## List flags `client.Flagship.Apps.Flags.List(ctx, appID, params) (*CursorPaginationAfter[AppFlagListResponse], error)` **get** `/accounts/{account_id}/flagship/apps/{app_id}/flags` Lists an app's flags ordered by key. Pass `cursor` from `result_info` to page forward; a null cursor indicates the last page. ### Parameters - `appID string` App identifier. - `params AppFlagListParams` - `AccountID param.Field[string]` Path param: Cloudflare account ID. - `Cursor param.Field[string]` Query param: Pagination cursor from a previous response. - `Limit param.Field[string]` Query param: Max items to return (1–200). ### Returns - `type AppFlagListResponse struct{…}` - `DefaultVariation string` Variation served when no rule matches or the flag is disabled. Must be a key in `variations`. - `Enabled bool` When false, the flag bypasses all rules and always serves `default_variation`. - `Key string` Unique identifier for the flag within an app. Used in all evaluation and SDK calls. - `Rules []AppFlagListResponseRule` Targeting rules evaluated in ascending `priority`; the first matching rule wins. An empty array means the flag always serves `default_variation`. - `Conditions []AppFlagListResponseRulesCondition` Conditions the context must satisfy for this rule to match. An empty array matches all contexts. - `type AppFlagListResponseRulesConditionsObject struct{…}` - `Attribute string` - `Operator AppFlagListResponseRulesConditionsObjectOperator` - `const AppFlagListResponseRulesConditionsObjectOperatorEquals AppFlagListResponseRulesConditionsObjectOperator = "equals"` - `const AppFlagListResponseRulesConditionsObjectOperatorNotEquals AppFlagListResponseRulesConditionsObjectOperator = "not_equals"` - `const AppFlagListResponseRulesConditionsObjectOperatorGreaterThan AppFlagListResponseRulesConditionsObjectOperator = "greater_than"` - `const AppFlagListResponseRulesConditionsObjectOperatorLessThan AppFlagListResponseRulesConditionsObjectOperator = "less_than"` - `const AppFlagListResponseRulesConditionsObjectOperatorGreaterThanOrEquals AppFlagListResponseRulesConditionsObjectOperator = "greater_than_or_equals"` - `const AppFlagListResponseRulesConditionsObjectOperatorLessThanOrEquals AppFlagListResponseRulesConditionsObjectOperator = "less_than_or_equals"` - `const AppFlagListResponseRulesConditionsObjectOperatorContains AppFlagListResponseRulesConditionsObjectOperator = "contains"` - `const AppFlagListResponseRulesConditionsObjectOperatorStartsWith AppFlagListResponseRulesConditionsObjectOperator = "starts_with"` - `const AppFlagListResponseRulesConditionsObjectOperatorEndsWith AppFlagListResponseRulesConditionsObjectOperator = "ends_with"` - `const AppFlagListResponseRulesConditionsObjectOperatorIn AppFlagListResponseRulesConditionsObjectOperator = "in"` - `const AppFlagListResponseRulesConditionsObjectOperatorNotIn AppFlagListResponseRulesConditionsObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagListResponseRulesConditionsObject struct{…}` - `Clauses []AppFlagListResponseRulesConditionsObjectClause` - `type AppFlagListResponseRulesConditionsObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagListResponseRulesConditionsObjectClausesObjectOperator` - `const AppFlagListResponseRulesConditionsObjectClausesObjectOperatorEquals AppFlagListResponseRulesConditionsObjectClausesObjectOperator = "equals"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectOperatorNotEquals AppFlagListResponseRulesConditionsObjectClausesObjectOperator = "not_equals"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectOperatorGreaterThan AppFlagListResponseRulesConditionsObjectClausesObjectOperator = "greater_than"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectOperatorLessThan AppFlagListResponseRulesConditionsObjectClausesObjectOperator = "less_than"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectOperatorGreaterThanOrEquals AppFlagListResponseRulesConditionsObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectOperatorLessThanOrEquals AppFlagListResponseRulesConditionsObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectOperatorContains AppFlagListResponseRulesConditionsObjectClausesObjectOperator = "contains"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectOperatorStartsWith AppFlagListResponseRulesConditionsObjectClausesObjectOperator = "starts_with"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectOperatorEndsWith AppFlagListResponseRulesConditionsObjectClausesObjectOperator = "ends_with"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectOperatorIn AppFlagListResponseRulesConditionsObjectClausesObjectOperator = "in"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectOperatorNotIn AppFlagListResponseRulesConditionsObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagListResponseRulesConditionsObjectClausesObject struct{…}` - `Clauses []AppFlagListResponseRulesConditionsObjectClausesObjectClause` - `type AppFlagListResponseRulesConditionsObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectOperator` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectOperatorEquals AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectOperatorNotEquals AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectOperatorLessThan AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectOperatorContains AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectOperatorStartsWith AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectOperatorEndsWith AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectOperatorIn AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectOperatorNotIn AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagListResponseRulesConditionsObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClause` - `type AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClause` - `type AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClause` - `type AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesUnion` - `UnionString` - `UnionFloat` - `UnionBool` - `type AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesMap map[string, unknown]` - `type AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesArray []unknown` - `LogicalOperator AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagListResponseRulesConditionsObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagListResponseRulesConditionsObjectClausesObjectLogicalOperator` - `const AppFlagListResponseRulesConditionsObjectClausesObjectLogicalOperatorAnd AppFlagListResponseRulesConditionsObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagListResponseRulesConditionsObjectClausesObjectLogicalOperatorOr AppFlagListResponseRulesConditionsObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagListResponseRulesConditionsObjectLogicalOperator` - `const AppFlagListResponseRulesConditionsObjectLogicalOperatorAnd AppFlagListResponseRulesConditionsObjectLogicalOperator = "AND"` - `const AppFlagListResponseRulesConditionsObjectLogicalOperatorOr AppFlagListResponseRulesConditionsObjectLogicalOperator = "OR"` - `Priority int64` Evaluation order; lower numbers are evaluated first. Must be unique across the flag's rules. - `ServeVariation string` Variation served when this rule matches. Must be a key in `variations`. - `Rollout AppFlagListResponseRulesRollout` - `Percentage float64` Percentage of matching traffic (0–100) served this variation. For multi-way splits, use cumulative upper bounds across rules (e.g. 30, 70, 100). - `Attribute string` Context attribute used for sticky bucketing. Defaults to `targetingKey`. If absent at evaluation time, bucketing is random per request. - `Variations map[string, AppFlagListResponseVariationsUnion]` Map of variation name to value. All values must be the same type (boolean, string, number, or JSON object/array). Each serialized value must be 10KB or smaller. - `UnionString` - `UnionFloat` - `UnionBool` - `type AppFlagListResponseVariationsMap map[string, unknown]` - `type AppFlagListResponseVariationsArray []unknown` - `Description string` - `Type AppFlagListResponseType` Value type of the flag's variations. Inferred from the variation values on write, so it may be omitted in requests. - `const AppFlagListResponseTypeBoolean AppFlagListResponseType = "boolean"` - `const AppFlagListResponseTypeString AppFlagListResponseType = "string"` - `const AppFlagListResponseTypeNumber AppFlagListResponseType = "number"` - `const AppFlagListResponseTypeJson AppFlagListResponseType = "json"` - `UpdatedAt string` - `UpdatedBy string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/flagship" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) page, err := client.Flagship.Apps.Flags.List( context.TODO(), "app_id", flagship.AppFlagListParams{ AccountID: cloudflare.F("account_id"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### Response ```json { "errors": [ { "message": "message" } ], "messages": [ { "message": "message" } ], "result": [ { "default_variation": "x", "enabled": true, "key": "x", "rules": [ { "conditions": [ { "attribute": "x", "operator": "equals", "value": {} } ], "priority": 1, "serve_variation": "x", "rollout": { "percentage": 0, "attribute": "x" } } ], "variations": { "foo": "string" }, "description": "description", "type": "boolean", "updated_at": "updated_at", "updated_by": "updated_by" } ], "result_info": { "count": 0, "cursor": "cursor" }, "success": true } ``` ## Get flag `client.Flagship.Apps.Flags.Get(ctx, appID, flagKey, query) (*AppFlagGetResponse, error)` **get** `/accounts/{account_id}/flagship/apps/{app_id}/flags/{flag_key}` Returns the full flag definition including rules, variations, and audit fields. ### Parameters - `appID string` App identifier. - `flagKey string` Flag key (slug). - `query AppFlagGetParams` - `AccountID param.Field[string]` Cloudflare account ID. ### Returns - `type AppFlagGetResponse struct{…}` - `DefaultVariation string` Variation served when no rule matches or the flag is disabled. Must be a key in `variations`. - `Enabled bool` When false, the flag bypasses all rules and always serves `default_variation`. - `Key string` Unique identifier for the flag within an app. Used in all evaluation and SDK calls. - `Rules []AppFlagGetResponseRule` Targeting rules evaluated in ascending `priority`; the first matching rule wins. An empty array means the flag always serves `default_variation`. - `Conditions []AppFlagGetResponseRulesCondition` Conditions the context must satisfy for this rule to match. An empty array matches all contexts. - `type AppFlagGetResponseRulesConditionsObject struct{…}` - `Attribute string` - `Operator AppFlagGetResponseRulesConditionsObjectOperator` - `const AppFlagGetResponseRulesConditionsObjectOperatorEquals AppFlagGetResponseRulesConditionsObjectOperator = "equals"` - `const AppFlagGetResponseRulesConditionsObjectOperatorNotEquals AppFlagGetResponseRulesConditionsObjectOperator = "not_equals"` - `const AppFlagGetResponseRulesConditionsObjectOperatorGreaterThan AppFlagGetResponseRulesConditionsObjectOperator = "greater_than"` - `const AppFlagGetResponseRulesConditionsObjectOperatorLessThan AppFlagGetResponseRulesConditionsObjectOperator = "less_than"` - `const AppFlagGetResponseRulesConditionsObjectOperatorGreaterThanOrEquals AppFlagGetResponseRulesConditionsObjectOperator = "greater_than_or_equals"` - `const AppFlagGetResponseRulesConditionsObjectOperatorLessThanOrEquals AppFlagGetResponseRulesConditionsObjectOperator = "less_than_or_equals"` - `const AppFlagGetResponseRulesConditionsObjectOperatorContains AppFlagGetResponseRulesConditionsObjectOperator = "contains"` - `const AppFlagGetResponseRulesConditionsObjectOperatorStartsWith AppFlagGetResponseRulesConditionsObjectOperator = "starts_with"` - `const AppFlagGetResponseRulesConditionsObjectOperatorEndsWith AppFlagGetResponseRulesConditionsObjectOperator = "ends_with"` - `const AppFlagGetResponseRulesConditionsObjectOperatorIn AppFlagGetResponseRulesConditionsObjectOperator = "in"` - `const AppFlagGetResponseRulesConditionsObjectOperatorNotIn AppFlagGetResponseRulesConditionsObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagGetResponseRulesConditionsObject struct{…}` - `Clauses []AppFlagGetResponseRulesConditionsObjectClause` - `type AppFlagGetResponseRulesConditionsObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagGetResponseRulesConditionsObjectClausesObjectOperator` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectOperatorEquals AppFlagGetResponseRulesConditionsObjectClausesObjectOperator = "equals"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectOperatorNotEquals AppFlagGetResponseRulesConditionsObjectClausesObjectOperator = "not_equals"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectOperatorGreaterThan AppFlagGetResponseRulesConditionsObjectClausesObjectOperator = "greater_than"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectOperatorLessThan AppFlagGetResponseRulesConditionsObjectClausesObjectOperator = "less_than"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectOperatorGreaterThanOrEquals AppFlagGetResponseRulesConditionsObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectOperatorLessThanOrEquals AppFlagGetResponseRulesConditionsObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectOperatorContains AppFlagGetResponseRulesConditionsObjectClausesObjectOperator = "contains"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectOperatorStartsWith AppFlagGetResponseRulesConditionsObjectClausesObjectOperator = "starts_with"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectOperatorEndsWith AppFlagGetResponseRulesConditionsObjectClausesObjectOperator = "ends_with"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectOperatorIn AppFlagGetResponseRulesConditionsObjectClausesObjectOperator = "in"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectOperatorNotIn AppFlagGetResponseRulesConditionsObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagGetResponseRulesConditionsObjectClausesObject struct{…}` - `Clauses []AppFlagGetResponseRulesConditionsObjectClausesObjectClause` - `type AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectOperator` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectOperatorEquals AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectOperatorNotEquals AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectOperatorLessThan AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectOperatorContains AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectOperatorStartsWith AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectOperatorEndsWith AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectOperatorIn AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectOperatorNotIn AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClause` - `type AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClause` - `type AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClause` - `type AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesUnion` - `UnionString` - `UnionFloat` - `UnionBool` - `type AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesMap map[string, unknown]` - `type AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesArray []unknown` - `LogicalOperator AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagGetResponseRulesConditionsObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagGetResponseRulesConditionsObjectClausesObjectLogicalOperator` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectLogicalOperatorAnd AppFlagGetResponseRulesConditionsObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagGetResponseRulesConditionsObjectClausesObjectLogicalOperatorOr AppFlagGetResponseRulesConditionsObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagGetResponseRulesConditionsObjectLogicalOperator` - `const AppFlagGetResponseRulesConditionsObjectLogicalOperatorAnd AppFlagGetResponseRulesConditionsObjectLogicalOperator = "AND"` - `const AppFlagGetResponseRulesConditionsObjectLogicalOperatorOr AppFlagGetResponseRulesConditionsObjectLogicalOperator = "OR"` - `Priority int64` Evaluation order; lower numbers are evaluated first. Must be unique across the flag's rules. - `ServeVariation string` Variation served when this rule matches. Must be a key in `variations`. - `Rollout AppFlagGetResponseRulesRollout` - `Percentage float64` Percentage of matching traffic (0–100) served this variation. For multi-way splits, use cumulative upper bounds across rules (e.g. 30, 70, 100). - `Attribute string` Context attribute used for sticky bucketing. Defaults to `targetingKey`. If absent at evaluation time, bucketing is random per request. - `Variations map[string, AppFlagGetResponseVariationsUnion]` Map of variation name to value. All values must be the same type (boolean, string, number, or JSON object/array). Each serialized value must be 10KB or smaller. - `UnionString` - `UnionFloat` - `UnionBool` - `type AppFlagGetResponseVariationsMap map[string, unknown]` - `type AppFlagGetResponseVariationsArray []unknown` - `Description string` - `Type AppFlagGetResponseType` Value type of the flag's variations. Inferred from the variation values on write, so it may be omitted in requests. - `const AppFlagGetResponseTypeBoolean AppFlagGetResponseType = "boolean"` - `const AppFlagGetResponseTypeString AppFlagGetResponseType = "string"` - `const AppFlagGetResponseTypeNumber AppFlagGetResponseType = "number"` - `const AppFlagGetResponseTypeJson AppFlagGetResponseType = "json"` - `UpdatedAt string` - `UpdatedBy string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/flagship" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) flag, err := client.Flagship.Apps.Flags.Get( context.TODO(), "app_id", "flag_key", flagship.AppFlagGetParams{ AccountID: cloudflare.F("account_id"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", flag.DefaultVariation) } ``` #### Response ```json { "errors": [ { "message": "message" } ], "messages": [ { "message": "message" } ], "result": { "default_variation": "x", "enabled": true, "key": "x", "rules": [ { "conditions": [ { "attribute": "x", "operator": "equals", "value": {} } ], "priority": 1, "serve_variation": "x", "rollout": { "percentage": 0, "attribute": "x" } } ], "variations": { "foo": "string" }, "description": "description", "type": "boolean", "updated_at": "updated_at", "updated_by": "updated_by" }, "success": true } ``` ## Create flag `client.Flagship.Apps.Flags.New(ctx, appID, params) (*AppFlagNewResponse, error)` **post** `/accounts/{account_id}/flagship/apps/{app_id}/flags` Creates a flag. Returns 409 if the key already exists. `type` is inferred from variation values and may be omitted. ### Parameters - `appID string` App identifier. - `params AppFlagNewParams` - `AccountID param.Field[string]` Path param: Cloudflare account ID. - `DefaultVariation param.Field[string]` Body param: Variation served when no rule matches or the flag is disabled. Must be a key in `variations`. - `Enabled param.Field[bool]` Body param: When false, the flag bypasses all rules and always serves `default_variation`. - `Key param.Field[string]` Body param: Unique identifier for the flag within an app. Used in all evaluation and SDK calls. - `Rules param.Field[[]AppFlagNewParamsRule]` Body param: Targeting rules evaluated in ascending `priority`; the first matching rule wins. An empty array means the flag always serves `default_variation`. - `Conditions []AppFlagNewParamsRulesCondition` Conditions the context must satisfy for this rule to match. An empty array matches all contexts. - `type AppFlagNewParamsRulesConditionsObject struct{…}` - `Attribute string` - `Operator AppFlagNewParamsRulesConditionsObjectOperator` - `const AppFlagNewParamsRulesConditionsObjectOperatorEquals AppFlagNewParamsRulesConditionsObjectOperator = "equals"` - `const AppFlagNewParamsRulesConditionsObjectOperatorNotEquals AppFlagNewParamsRulesConditionsObjectOperator = "not_equals"` - `const AppFlagNewParamsRulesConditionsObjectOperatorGreaterThan AppFlagNewParamsRulesConditionsObjectOperator = "greater_than"` - `const AppFlagNewParamsRulesConditionsObjectOperatorLessThan AppFlagNewParamsRulesConditionsObjectOperator = "less_than"` - `const AppFlagNewParamsRulesConditionsObjectOperatorGreaterThanOrEquals AppFlagNewParamsRulesConditionsObjectOperator = "greater_than_or_equals"` - `const AppFlagNewParamsRulesConditionsObjectOperatorLessThanOrEquals AppFlagNewParamsRulesConditionsObjectOperator = "less_than_or_equals"` - `const AppFlagNewParamsRulesConditionsObjectOperatorContains AppFlagNewParamsRulesConditionsObjectOperator = "contains"` - `const AppFlagNewParamsRulesConditionsObjectOperatorStartsWith AppFlagNewParamsRulesConditionsObjectOperator = "starts_with"` - `const AppFlagNewParamsRulesConditionsObjectOperatorEndsWith AppFlagNewParamsRulesConditionsObjectOperator = "ends_with"` - `const AppFlagNewParamsRulesConditionsObjectOperatorIn AppFlagNewParamsRulesConditionsObjectOperator = "in"` - `const AppFlagNewParamsRulesConditionsObjectOperatorNotIn AppFlagNewParamsRulesConditionsObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagNewParamsRulesConditionsObject struct{…}` - `Clauses []AppFlagNewParamsRulesConditionsObjectClause` - `type AppFlagNewParamsRulesConditionsObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagNewParamsRulesConditionsObjectClausesObjectOperator` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectOperatorEquals AppFlagNewParamsRulesConditionsObjectClausesObjectOperator = "equals"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectOperatorNotEquals AppFlagNewParamsRulesConditionsObjectClausesObjectOperator = "not_equals"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectOperatorGreaterThan AppFlagNewParamsRulesConditionsObjectClausesObjectOperator = "greater_than"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectOperatorLessThan AppFlagNewParamsRulesConditionsObjectClausesObjectOperator = "less_than"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectOperatorGreaterThanOrEquals AppFlagNewParamsRulesConditionsObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectOperatorLessThanOrEquals AppFlagNewParamsRulesConditionsObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectOperatorContains AppFlagNewParamsRulesConditionsObjectClausesObjectOperator = "contains"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectOperatorStartsWith AppFlagNewParamsRulesConditionsObjectClausesObjectOperator = "starts_with"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectOperatorEndsWith AppFlagNewParamsRulesConditionsObjectClausesObjectOperator = "ends_with"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectOperatorIn AppFlagNewParamsRulesConditionsObjectClausesObjectOperator = "in"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectOperatorNotIn AppFlagNewParamsRulesConditionsObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagNewParamsRulesConditionsObjectClausesObject struct{…}` - `Clauses []AppFlagNewParamsRulesConditionsObjectClausesObjectClause` - `type AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectOperator` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectOperatorEquals AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectOperatorNotEquals AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectOperatorLessThan AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectOperatorContains AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectOperatorStartsWith AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectOperatorEndsWith AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectOperatorIn AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectOperatorNotIn AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClause` - `type AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClause` - `type AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClause` - `type AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClauseUnion` - `UnionString` - `UnionFloat` - `UnionBool` - `type AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesMap map[string, unknown]` - `type AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesArray []unknown` - `LogicalOperator AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagNewParamsRulesConditionsObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagNewParamsRulesConditionsObjectClausesObjectLogicalOperator` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectLogicalOperatorAnd AppFlagNewParamsRulesConditionsObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagNewParamsRulesConditionsObjectClausesObjectLogicalOperatorOr AppFlagNewParamsRulesConditionsObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagNewParamsRulesConditionsObjectLogicalOperator` - `const AppFlagNewParamsRulesConditionsObjectLogicalOperatorAnd AppFlagNewParamsRulesConditionsObjectLogicalOperator = "AND"` - `const AppFlagNewParamsRulesConditionsObjectLogicalOperatorOr AppFlagNewParamsRulesConditionsObjectLogicalOperator = "OR"` - `Priority int64` Evaluation order; lower numbers are evaluated first. Must be unique across the flag's rules. - `ServeVariation string` Variation served when this rule matches. Must be a key in `variations`. - `Rollout AppFlagNewParamsRulesRollout` - `Percentage float64` Percentage of matching traffic (0–100) served this variation. For multi-way splits, use cumulative upper bounds across rules (e.g. 30, 70, 100). - `Attribute string` Context attribute used for sticky bucketing. Defaults to `targetingKey`. If absent at evaluation time, bucketing is random per request. - `Variations param.Field[map[string, AppFlagNewParamsVariationsUnion]]` Body param: Map of variation name to value. All values must be the same type (boolean, string, number, or JSON object/array). Each serialized value must be 10KB or smaller. - `UnionString` - `UnionFloat` - `UnionBool` - `type AppFlagNewParamsVariationsMap map[string, unknown]` - `type AppFlagNewParamsVariationsArray []unknown` - `Description param.Field[string]` Body param - `Type param.Field[AppFlagNewParamsType]` Body param: Value type of the flag's variations. Inferred from the variation values on write, so it may be omitted in requests. - `const AppFlagNewParamsTypeBoolean AppFlagNewParamsType = "boolean"` - `const AppFlagNewParamsTypeString AppFlagNewParamsType = "string"` - `const AppFlagNewParamsTypeNumber AppFlagNewParamsType = "number"` - `const AppFlagNewParamsTypeJson AppFlagNewParamsType = "json"` ### Returns - `type AppFlagNewResponse struct{…}` - `DefaultVariation string` Variation served when no rule matches or the flag is disabled. Must be a key in `variations`. - `Enabled bool` When false, the flag bypasses all rules and always serves `default_variation`. - `Key string` Unique identifier for the flag within an app. Used in all evaluation and SDK calls. - `Rules []AppFlagNewResponseRule` Targeting rules evaluated in ascending `priority`; the first matching rule wins. An empty array means the flag always serves `default_variation`. - `Conditions []AppFlagNewResponseRulesCondition` Conditions the context must satisfy for this rule to match. An empty array matches all contexts. - `type AppFlagNewResponseRulesConditionsObject struct{…}` - `Attribute string` - `Operator AppFlagNewResponseRulesConditionsObjectOperator` - `const AppFlagNewResponseRulesConditionsObjectOperatorEquals AppFlagNewResponseRulesConditionsObjectOperator = "equals"` - `const AppFlagNewResponseRulesConditionsObjectOperatorNotEquals AppFlagNewResponseRulesConditionsObjectOperator = "not_equals"` - `const AppFlagNewResponseRulesConditionsObjectOperatorGreaterThan AppFlagNewResponseRulesConditionsObjectOperator = "greater_than"` - `const AppFlagNewResponseRulesConditionsObjectOperatorLessThan AppFlagNewResponseRulesConditionsObjectOperator = "less_than"` - `const AppFlagNewResponseRulesConditionsObjectOperatorGreaterThanOrEquals AppFlagNewResponseRulesConditionsObjectOperator = "greater_than_or_equals"` - `const AppFlagNewResponseRulesConditionsObjectOperatorLessThanOrEquals AppFlagNewResponseRulesConditionsObjectOperator = "less_than_or_equals"` - `const AppFlagNewResponseRulesConditionsObjectOperatorContains AppFlagNewResponseRulesConditionsObjectOperator = "contains"` - `const AppFlagNewResponseRulesConditionsObjectOperatorStartsWith AppFlagNewResponseRulesConditionsObjectOperator = "starts_with"` - `const AppFlagNewResponseRulesConditionsObjectOperatorEndsWith AppFlagNewResponseRulesConditionsObjectOperator = "ends_with"` - `const AppFlagNewResponseRulesConditionsObjectOperatorIn AppFlagNewResponseRulesConditionsObjectOperator = "in"` - `const AppFlagNewResponseRulesConditionsObjectOperatorNotIn AppFlagNewResponseRulesConditionsObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagNewResponseRulesConditionsObject struct{…}` - `Clauses []AppFlagNewResponseRulesConditionsObjectClause` - `type AppFlagNewResponseRulesConditionsObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagNewResponseRulesConditionsObjectClausesObjectOperator` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectOperatorEquals AppFlagNewResponseRulesConditionsObjectClausesObjectOperator = "equals"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectOperatorNotEquals AppFlagNewResponseRulesConditionsObjectClausesObjectOperator = "not_equals"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectOperatorGreaterThan AppFlagNewResponseRulesConditionsObjectClausesObjectOperator = "greater_than"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectOperatorLessThan AppFlagNewResponseRulesConditionsObjectClausesObjectOperator = "less_than"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectOperatorGreaterThanOrEquals AppFlagNewResponseRulesConditionsObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectOperatorLessThanOrEquals AppFlagNewResponseRulesConditionsObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectOperatorContains AppFlagNewResponseRulesConditionsObjectClausesObjectOperator = "contains"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectOperatorStartsWith AppFlagNewResponseRulesConditionsObjectClausesObjectOperator = "starts_with"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectOperatorEndsWith AppFlagNewResponseRulesConditionsObjectClausesObjectOperator = "ends_with"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectOperatorIn AppFlagNewResponseRulesConditionsObjectClausesObjectOperator = "in"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectOperatorNotIn AppFlagNewResponseRulesConditionsObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagNewResponseRulesConditionsObjectClausesObject struct{…}` - `Clauses []AppFlagNewResponseRulesConditionsObjectClausesObjectClause` - `type AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectOperator` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectOperatorEquals AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectOperatorNotEquals AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectOperatorLessThan AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectOperatorContains AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectOperatorStartsWith AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectOperatorEndsWith AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectOperatorIn AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectOperatorNotIn AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClause` - `type AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClause` - `type AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClause` - `type AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesUnion` - `UnionString` - `UnionFloat` - `UnionBool` - `type AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesMap map[string, unknown]` - `type AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesArray []unknown` - `LogicalOperator AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagNewResponseRulesConditionsObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagNewResponseRulesConditionsObjectClausesObjectLogicalOperator` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectLogicalOperatorAnd AppFlagNewResponseRulesConditionsObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagNewResponseRulesConditionsObjectClausesObjectLogicalOperatorOr AppFlagNewResponseRulesConditionsObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagNewResponseRulesConditionsObjectLogicalOperator` - `const AppFlagNewResponseRulesConditionsObjectLogicalOperatorAnd AppFlagNewResponseRulesConditionsObjectLogicalOperator = "AND"` - `const AppFlagNewResponseRulesConditionsObjectLogicalOperatorOr AppFlagNewResponseRulesConditionsObjectLogicalOperator = "OR"` - `Priority int64` Evaluation order; lower numbers are evaluated first. Must be unique across the flag's rules. - `ServeVariation string` Variation served when this rule matches. Must be a key in `variations`. - `Rollout AppFlagNewResponseRulesRollout` - `Percentage float64` Percentage of matching traffic (0–100) served this variation. For multi-way splits, use cumulative upper bounds across rules (e.g. 30, 70, 100). - `Attribute string` Context attribute used for sticky bucketing. Defaults to `targetingKey`. If absent at evaluation time, bucketing is random per request. - `Variations map[string, AppFlagNewResponseVariationsUnion]` Map of variation name to value. All values must be the same type (boolean, string, number, or JSON object/array). Each serialized value must be 10KB or smaller. - `UnionString` - `UnionFloat` - `UnionBool` - `type AppFlagNewResponseVariationsMap map[string, unknown]` - `type AppFlagNewResponseVariationsArray []unknown` - `Description string` - `Type AppFlagNewResponseType` Value type of the flag's variations. Inferred from the variation values on write, so it may be omitted in requests. - `const AppFlagNewResponseTypeBoolean AppFlagNewResponseType = "boolean"` - `const AppFlagNewResponseTypeString AppFlagNewResponseType = "string"` - `const AppFlagNewResponseTypeNumber AppFlagNewResponseType = "number"` - `const AppFlagNewResponseTypeJson AppFlagNewResponseType = "json"` - `UpdatedAt string` - `UpdatedBy string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/flagship" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/shared" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) flag, err := client.Flagship.Apps.Flags.New( context.TODO(), "app_id", flagship.AppFlagNewParams{ AccountID: cloudflare.F("account_id"), DefaultVariation: cloudflare.F("x"), Enabled: cloudflare.F(true), Key: cloudflare.F("x"), Rules: cloudflare.F([]flagship.AppFlagNewParamsRule{flagship.AppFlagNewParamsRule{ Conditions: cloudflare.F([]flagship.AppFlagNewParamsRulesConditionUnion{flagship.AppFlagNewParamsRulesConditionsObject{ Attribute: cloudflare.F("x"), Operator: cloudflare.F(flagship.AppFlagNewParamsRulesConditionsObjectOperatorEquals), Value: cloudflare.F[any](map[string]interface{}{ }), }}), Priority: cloudflare.F(int64(1)), ServeVariation: cloudflare.F("x"), }}), Variations: cloudflare.F(map[string]flagship.AppFlagNewParamsVariationsUnion{ "foo": shared.UnionString("string"), }), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", flag.DefaultVariation) } ``` #### Response ```json { "errors": [ { "message": "message" } ], "messages": [ { "message": "message" } ], "result": { "default_variation": "x", "enabled": true, "key": "x", "rules": [ { "conditions": [ { "attribute": "x", "operator": "equals", "value": {} } ], "priority": 1, "serve_variation": "x", "rollout": { "percentage": 0, "attribute": "x" } } ], "variations": { "foo": "string" }, "description": "description", "type": "boolean", "updated_at": "updated_at", "updated_by": "updated_by" }, "success": true } ``` ## Update flag `client.Flagship.Apps.Flags.Update(ctx, appID, flagKey, params) (*AppFlagUpdateResponse, error)` **put** `/accounts/{account_id}/flagship/apps/{app_id}/flags/{flag_key}` Replaces the entire flag definition. Omitted fields are dropped, not preserved — read before writing. Each update appends a changelog entry. ### Parameters - `appID string` App identifier. - `flagKey string` Flag key (slug). - `params AppFlagUpdateParams` - `AccountID param.Field[string]` Path param: Cloudflare account ID. - `DefaultVariation param.Field[string]` Body param: Variation served when no rule matches or the flag is disabled. Must be a key in `variations`. - `Enabled param.Field[bool]` Body param: When false, the flag bypasses all rules and always serves `default_variation`. - `Key param.Field[string]` Body param: Unique identifier for the flag within an app. Used in all evaluation and SDK calls. - `Rules param.Field[[]AppFlagUpdateParamsRule]` Body param: Targeting rules evaluated in ascending `priority`; the first matching rule wins. An empty array means the flag always serves `default_variation`. - `Conditions []AppFlagUpdateParamsRulesCondition` Conditions the context must satisfy for this rule to match. An empty array matches all contexts. - `type AppFlagUpdateParamsRulesConditionsObject struct{…}` - `Attribute string` - `Operator AppFlagUpdateParamsRulesConditionsObjectOperator` - `const AppFlagUpdateParamsRulesConditionsObjectOperatorEquals AppFlagUpdateParamsRulesConditionsObjectOperator = "equals"` - `const AppFlagUpdateParamsRulesConditionsObjectOperatorNotEquals AppFlagUpdateParamsRulesConditionsObjectOperator = "not_equals"` - `const AppFlagUpdateParamsRulesConditionsObjectOperatorGreaterThan AppFlagUpdateParamsRulesConditionsObjectOperator = "greater_than"` - `const AppFlagUpdateParamsRulesConditionsObjectOperatorLessThan AppFlagUpdateParamsRulesConditionsObjectOperator = "less_than"` - `const AppFlagUpdateParamsRulesConditionsObjectOperatorGreaterThanOrEquals AppFlagUpdateParamsRulesConditionsObjectOperator = "greater_than_or_equals"` - `const AppFlagUpdateParamsRulesConditionsObjectOperatorLessThanOrEquals AppFlagUpdateParamsRulesConditionsObjectOperator = "less_than_or_equals"` - `const AppFlagUpdateParamsRulesConditionsObjectOperatorContains AppFlagUpdateParamsRulesConditionsObjectOperator = "contains"` - `const AppFlagUpdateParamsRulesConditionsObjectOperatorStartsWith AppFlagUpdateParamsRulesConditionsObjectOperator = "starts_with"` - `const AppFlagUpdateParamsRulesConditionsObjectOperatorEndsWith AppFlagUpdateParamsRulesConditionsObjectOperator = "ends_with"` - `const AppFlagUpdateParamsRulesConditionsObjectOperatorIn AppFlagUpdateParamsRulesConditionsObjectOperator = "in"` - `const AppFlagUpdateParamsRulesConditionsObjectOperatorNotIn AppFlagUpdateParamsRulesConditionsObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagUpdateParamsRulesConditionsObject struct{…}` - `Clauses []AppFlagUpdateParamsRulesConditionsObjectClause` - `type AppFlagUpdateParamsRulesConditionsObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagUpdateParamsRulesConditionsObjectClausesObjectOperator` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectOperatorEquals AppFlagUpdateParamsRulesConditionsObjectClausesObjectOperator = "equals"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectOperatorNotEquals AppFlagUpdateParamsRulesConditionsObjectClausesObjectOperator = "not_equals"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectOperatorGreaterThan AppFlagUpdateParamsRulesConditionsObjectClausesObjectOperator = "greater_than"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectOperatorLessThan AppFlagUpdateParamsRulesConditionsObjectClausesObjectOperator = "less_than"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectOperatorGreaterThanOrEquals AppFlagUpdateParamsRulesConditionsObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectOperatorLessThanOrEquals AppFlagUpdateParamsRulesConditionsObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectOperatorContains AppFlagUpdateParamsRulesConditionsObjectClausesObjectOperator = "contains"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectOperatorStartsWith AppFlagUpdateParamsRulesConditionsObjectClausesObjectOperator = "starts_with"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectOperatorEndsWith AppFlagUpdateParamsRulesConditionsObjectClausesObjectOperator = "ends_with"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectOperatorIn AppFlagUpdateParamsRulesConditionsObjectClausesObjectOperator = "in"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectOperatorNotIn AppFlagUpdateParamsRulesConditionsObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagUpdateParamsRulesConditionsObjectClausesObject struct{…}` - `Clauses []AppFlagUpdateParamsRulesConditionsObjectClausesObjectClause` - `type AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectOperator` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectOperatorEquals AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectOperatorNotEquals AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectOperatorLessThan AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectOperatorContains AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectOperatorStartsWith AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectOperatorEndsWith AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectOperatorIn AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectOperatorNotIn AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClause` - `type AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClause` - `type AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClause` - `type AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClauseUnion` - `UnionString` - `UnionFloat` - `UnionBool` - `type AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesMap map[string, unknown]` - `type AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesArray []unknown` - `LogicalOperator AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagUpdateParamsRulesConditionsObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagUpdateParamsRulesConditionsObjectClausesObjectLogicalOperator` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectLogicalOperatorAnd AppFlagUpdateParamsRulesConditionsObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagUpdateParamsRulesConditionsObjectClausesObjectLogicalOperatorOr AppFlagUpdateParamsRulesConditionsObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagUpdateParamsRulesConditionsObjectLogicalOperator` - `const AppFlagUpdateParamsRulesConditionsObjectLogicalOperatorAnd AppFlagUpdateParamsRulesConditionsObjectLogicalOperator = "AND"` - `const AppFlagUpdateParamsRulesConditionsObjectLogicalOperatorOr AppFlagUpdateParamsRulesConditionsObjectLogicalOperator = "OR"` - `Priority int64` Evaluation order; lower numbers are evaluated first. Must be unique across the flag's rules. - `ServeVariation string` Variation served when this rule matches. Must be a key in `variations`. - `Rollout AppFlagUpdateParamsRulesRollout` - `Percentage float64` Percentage of matching traffic (0–100) served this variation. For multi-way splits, use cumulative upper bounds across rules (e.g. 30, 70, 100). - `Attribute string` Context attribute used for sticky bucketing. Defaults to `targetingKey`. If absent at evaluation time, bucketing is random per request. - `Variations param.Field[map[string, AppFlagUpdateParamsVariationsUnion]]` Body param: Map of variation name to value. All values must be the same type (boolean, string, number, or JSON object/array). Each serialized value must be 10KB or smaller. - `UnionString` - `UnionFloat` - `UnionBool` - `type AppFlagUpdateParamsVariationsMap map[string, unknown]` - `type AppFlagUpdateParamsVariationsArray []unknown` - `Description param.Field[string]` Body param - `Type param.Field[AppFlagUpdateParamsType]` Body param: Value type of the flag's variations. Inferred from the variation values on write, so it may be omitted in requests. - `const AppFlagUpdateParamsTypeBoolean AppFlagUpdateParamsType = "boolean"` - `const AppFlagUpdateParamsTypeString AppFlagUpdateParamsType = "string"` - `const AppFlagUpdateParamsTypeNumber AppFlagUpdateParamsType = "number"` - `const AppFlagUpdateParamsTypeJson AppFlagUpdateParamsType = "json"` ### Returns - `type AppFlagUpdateResponse struct{…}` - `DefaultVariation string` Variation served when no rule matches or the flag is disabled. Must be a key in `variations`. - `Enabled bool` When false, the flag bypasses all rules and always serves `default_variation`. - `Key string` Unique identifier for the flag within an app. Used in all evaluation and SDK calls. - `Rules []AppFlagUpdateResponseRule` Targeting rules evaluated in ascending `priority`; the first matching rule wins. An empty array means the flag always serves `default_variation`. - `Conditions []AppFlagUpdateResponseRulesCondition` Conditions the context must satisfy for this rule to match. An empty array matches all contexts. - `type AppFlagUpdateResponseRulesConditionsObject struct{…}` - `Attribute string` - `Operator AppFlagUpdateResponseRulesConditionsObjectOperator` - `const AppFlagUpdateResponseRulesConditionsObjectOperatorEquals AppFlagUpdateResponseRulesConditionsObjectOperator = "equals"` - `const AppFlagUpdateResponseRulesConditionsObjectOperatorNotEquals AppFlagUpdateResponseRulesConditionsObjectOperator = "not_equals"` - `const AppFlagUpdateResponseRulesConditionsObjectOperatorGreaterThan AppFlagUpdateResponseRulesConditionsObjectOperator = "greater_than"` - `const AppFlagUpdateResponseRulesConditionsObjectOperatorLessThan AppFlagUpdateResponseRulesConditionsObjectOperator = "less_than"` - `const AppFlagUpdateResponseRulesConditionsObjectOperatorGreaterThanOrEquals AppFlagUpdateResponseRulesConditionsObjectOperator = "greater_than_or_equals"` - `const AppFlagUpdateResponseRulesConditionsObjectOperatorLessThanOrEquals AppFlagUpdateResponseRulesConditionsObjectOperator = "less_than_or_equals"` - `const AppFlagUpdateResponseRulesConditionsObjectOperatorContains AppFlagUpdateResponseRulesConditionsObjectOperator = "contains"` - `const AppFlagUpdateResponseRulesConditionsObjectOperatorStartsWith AppFlagUpdateResponseRulesConditionsObjectOperator = "starts_with"` - `const AppFlagUpdateResponseRulesConditionsObjectOperatorEndsWith AppFlagUpdateResponseRulesConditionsObjectOperator = "ends_with"` - `const AppFlagUpdateResponseRulesConditionsObjectOperatorIn AppFlagUpdateResponseRulesConditionsObjectOperator = "in"` - `const AppFlagUpdateResponseRulesConditionsObjectOperatorNotIn AppFlagUpdateResponseRulesConditionsObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagUpdateResponseRulesConditionsObject struct{…}` - `Clauses []AppFlagUpdateResponseRulesConditionsObjectClause` - `type AppFlagUpdateResponseRulesConditionsObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagUpdateResponseRulesConditionsObjectClausesObjectOperator` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectOperatorEquals AppFlagUpdateResponseRulesConditionsObjectClausesObjectOperator = "equals"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectOperatorNotEquals AppFlagUpdateResponseRulesConditionsObjectClausesObjectOperator = "not_equals"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectOperatorGreaterThan AppFlagUpdateResponseRulesConditionsObjectClausesObjectOperator = "greater_than"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectOperatorLessThan AppFlagUpdateResponseRulesConditionsObjectClausesObjectOperator = "less_than"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectOperatorGreaterThanOrEquals AppFlagUpdateResponseRulesConditionsObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectOperatorLessThanOrEquals AppFlagUpdateResponseRulesConditionsObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectOperatorContains AppFlagUpdateResponseRulesConditionsObjectClausesObjectOperator = "contains"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectOperatorStartsWith AppFlagUpdateResponseRulesConditionsObjectClausesObjectOperator = "starts_with"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectOperatorEndsWith AppFlagUpdateResponseRulesConditionsObjectClausesObjectOperator = "ends_with"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectOperatorIn AppFlagUpdateResponseRulesConditionsObjectClausesObjectOperator = "in"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectOperatorNotIn AppFlagUpdateResponseRulesConditionsObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagUpdateResponseRulesConditionsObjectClausesObject struct{…}` - `Clauses []AppFlagUpdateResponseRulesConditionsObjectClausesObjectClause` - `type AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectOperator` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectOperatorEquals AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectOperatorNotEquals AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectOperatorLessThan AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectOperatorContains AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectOperatorStartsWith AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectOperatorEndsWith AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectOperatorIn AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectOperatorNotIn AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClause` - `type AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClause` - `type AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClause` - `type AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesUnion` - `UnionString` - `UnionFloat` - `UnionBool` - `type AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesMap map[string, unknown]` - `type AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesArray []unknown` - `LogicalOperator AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagUpdateResponseRulesConditionsObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagUpdateResponseRulesConditionsObjectClausesObjectLogicalOperator` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectLogicalOperatorAnd AppFlagUpdateResponseRulesConditionsObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagUpdateResponseRulesConditionsObjectClausesObjectLogicalOperatorOr AppFlagUpdateResponseRulesConditionsObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagUpdateResponseRulesConditionsObjectLogicalOperator` - `const AppFlagUpdateResponseRulesConditionsObjectLogicalOperatorAnd AppFlagUpdateResponseRulesConditionsObjectLogicalOperator = "AND"` - `const AppFlagUpdateResponseRulesConditionsObjectLogicalOperatorOr AppFlagUpdateResponseRulesConditionsObjectLogicalOperator = "OR"` - `Priority int64` Evaluation order; lower numbers are evaluated first. Must be unique across the flag's rules. - `ServeVariation string` Variation served when this rule matches. Must be a key in `variations`. - `Rollout AppFlagUpdateResponseRulesRollout` - `Percentage float64` Percentage of matching traffic (0–100) served this variation. For multi-way splits, use cumulative upper bounds across rules (e.g. 30, 70, 100). - `Attribute string` Context attribute used for sticky bucketing. Defaults to `targetingKey`. If absent at evaluation time, bucketing is random per request. - `Variations map[string, AppFlagUpdateResponseVariationsUnion]` Map of variation name to value. All values must be the same type (boolean, string, number, or JSON object/array). Each serialized value must be 10KB or smaller. - `UnionString` - `UnionFloat` - `UnionBool` - `type AppFlagUpdateResponseVariationsMap map[string, unknown]` - `type AppFlagUpdateResponseVariationsArray []unknown` - `Description string` - `Type AppFlagUpdateResponseType` Value type of the flag's variations. Inferred from the variation values on write, so it may be omitted in requests. - `const AppFlagUpdateResponseTypeBoolean AppFlagUpdateResponseType = "boolean"` - `const AppFlagUpdateResponseTypeString AppFlagUpdateResponseType = "string"` - `const AppFlagUpdateResponseTypeNumber AppFlagUpdateResponseType = "number"` - `const AppFlagUpdateResponseTypeJson AppFlagUpdateResponseType = "json"` - `UpdatedAt string` - `UpdatedBy string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/flagship" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/shared" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) flag, err := client.Flagship.Apps.Flags.Update( context.TODO(), "app_id", "flag_key", flagship.AppFlagUpdateParams{ AccountID: cloudflare.F("account_id"), DefaultVariation: cloudflare.F("x"), Enabled: cloudflare.F(true), Key: cloudflare.F("x"), Rules: cloudflare.F([]flagship.AppFlagUpdateParamsRule{flagship.AppFlagUpdateParamsRule{ Conditions: cloudflare.F([]flagship.AppFlagUpdateParamsRulesConditionUnion{flagship.AppFlagUpdateParamsRulesConditionsObject{ Attribute: cloudflare.F("x"), Operator: cloudflare.F(flagship.AppFlagUpdateParamsRulesConditionsObjectOperatorEquals), Value: cloudflare.F[any](map[string]interface{}{ }), }}), Priority: cloudflare.F(int64(1)), ServeVariation: cloudflare.F("x"), }}), Variations: cloudflare.F(map[string]flagship.AppFlagUpdateParamsVariationsUnion{ "foo": shared.UnionString("string"), }), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", flag.DefaultVariation) } ``` #### Response ```json { "errors": [ { "message": "message" } ], "messages": [ { "message": "message" } ], "result": { "default_variation": "x", "enabled": true, "key": "x", "rules": [ { "conditions": [ { "attribute": "x", "operator": "equals", "value": {} } ], "priority": 1, "serve_variation": "x", "rollout": { "percentage": 0, "attribute": "x" } } ], "variations": { "foo": "string" }, "description": "description", "type": "boolean", "updated_at": "updated_at", "updated_by": "updated_by" }, "success": true } ``` ## Delete flag `client.Flagship.Apps.Flags.Delete(ctx, appID, flagKey, body) (*AppFlagDeleteResponse, error)` **delete** `/accounts/{account_id}/flagship/apps/{app_id}/flags/{flag_key}` Permanently deletes a flag. Subsequent evaluations fall back to the caller-supplied default. Cannot be undone. ### Parameters - `appID string` App identifier. - `flagKey string` Flag key (slug). - `body AppFlagDeleteParams` - `AccountID param.Field[string]` Cloudflare account ID. ### Returns - `type AppFlagDeleteResponse struct{…}` - `Key string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/flagship" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) flag, err := client.Flagship.Apps.Flags.Delete( context.TODO(), "app_id", "flag_key", flagship.AppFlagDeleteParams{ AccountID: cloudflare.F("account_id"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", flag.Key) } ``` #### Response ```json { "errors": [ { "message": "message" } ], "messages": [ { "message": "message" } ], "result": { "key": "key" }, "success": true } ``` # Changelog ## Get flag changelog `client.Flagship.Apps.Flags.Changelog.List(ctx, appID, flagKey, params) (*CursorPaginationAfter[AppFlagChangelogListResponse], error)` **get** `/accounts/{account_id}/flagship/apps/{app_id}/flags/{flag_key}/changelog` Returns the audit history for a flag, newest first. Each entry includes the event type and full flag state after the change; `update` entries include a field-level diff. Capped at 200 entries per flag. ### Parameters - `appID string` App identifier. - `flagKey string` Flag key (slug). - `params AppFlagChangelogListParams` - `AccountID param.Field[string]` Path param: Cloudflare account ID. - `Cursor param.Field[string]` Query param: Pagination cursor from a previous response. - `Limit param.Field[string]` Query param: Max items to return (1–200). ### Returns - `type AppFlagChangelogListResponse interface{…}` - `type AppFlagChangelogListResponseObject struct{…}` - `After AppFlagChangelogListResponseObjectAfter` - `DefaultVariation string` Variation served when no rule matches or the flag is disabled. Must be a key in `variations`. - `Enabled bool` When false, the flag bypasses all rules and always serves `default_variation`. - `Key string` Unique identifier for the flag within an app. Used in all evaluation and SDK calls. - `Rules []AppFlagChangelogListResponseObjectAfterRule` Targeting rules evaluated in ascending `priority`; the first matching rule wins. An empty array means the flag always serves `default_variation`. - `Conditions []AppFlagChangelogListResponseObjectAfterRulesCondition` Conditions the context must satisfy for this rule to match. An empty array matches all contexts. - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObject struct{…}` - `Attribute string` - `Operator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorNotEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "not_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorGreaterThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "greater_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorLessThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "less_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorGreaterThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "greater_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorLessThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "less_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorContains AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "contains"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorStartsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "starts_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorEndsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "ends_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "in"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorNotIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObject struct{…}` - `Clauses []AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClause` - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorNotEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "not_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorGreaterThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "greater_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorLessThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "less_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorGreaterThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorLessThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorContains AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "contains"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorStartsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "starts_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorEndsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "ends_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "in"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorNotIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObject struct{…}` - `Clauses []AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClause` - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorNotEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorLessThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorContains AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorStartsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorEndsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorNotIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClause` - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClause` - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClause` - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesUnion` - `UnionString` - `UnionFloat` - `UnionBool` - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesMap map[string, unknown]` - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesArray []unknown` - `LogicalOperator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectLogicalOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectLogicalOperatorAnd AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectLogicalOperatorOr AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectLogicalOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectLogicalOperatorAnd AppFlagChangelogListResponseObjectAfterRulesConditionsObjectLogicalOperator = "AND"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectLogicalOperatorOr AppFlagChangelogListResponseObjectAfterRulesConditionsObjectLogicalOperator = "OR"` - `Priority int64` Evaluation order; lower numbers are evaluated first. Must be unique across the flag's rules. - `ServeVariation string` Variation served when this rule matches. Must be a key in `variations`. - `Rollout AppFlagChangelogListResponseObjectAfterRulesRollout` - `Percentage float64` Percentage of matching traffic (0–100) served this variation. For multi-way splits, use cumulative upper bounds across rules (e.g. 30, 70, 100). - `Attribute string` Context attribute used for sticky bucketing. Defaults to `targetingKey`. If absent at evaluation time, bucketing is random per request. - `Variations map[string, AppFlagChangelogListResponseObjectAfterVariationsUnion]` Map of variation name to value. All values must be the same type (boolean, string, number, or JSON object/array). Each serialized value must be 10KB or smaller. - `UnionString` - `UnionFloat` - `UnionBool` - `type AppFlagChangelogListResponseObjectAfterVariationsMap map[string, unknown]` - `type AppFlagChangelogListResponseObjectAfterVariationsArray []unknown` - `Description string` - `Type AppFlagChangelogListResponseObjectAfterType` Value type of the flag's variations. Inferred from the variation values on write, so it may be omitted in requests. - `const AppFlagChangelogListResponseObjectAfterTypeBoolean AppFlagChangelogListResponseObjectAfterType = "boolean"` - `const AppFlagChangelogListResponseObjectAfterTypeString AppFlagChangelogListResponseObjectAfterType = "string"` - `const AppFlagChangelogListResponseObjectAfterTypeNumber AppFlagChangelogListResponseObjectAfterType = "number"` - `const AppFlagChangelogListResponseObjectAfterTypeJson AppFlagChangelogListResponseObjectAfterType = "json"` - `UpdatedAt string` - `UpdatedBy string` - `Event AppFlagChangelogListResponseObjectEvent` - `const AppFlagChangelogListResponseObjectEventCreate AppFlagChangelogListResponseObjectEvent = "create"` - `FlagKey string` - `type AppFlagChangelogListResponseObject struct{…}` - `After AppFlagChangelogListResponseObjectAfter` - `DefaultVariation string` Variation served when no rule matches or the flag is disabled. Must be a key in `variations`. - `Enabled bool` When false, the flag bypasses all rules and always serves `default_variation`. - `Key string` Unique identifier for the flag within an app. Used in all evaluation and SDK calls. - `Rules []AppFlagChangelogListResponseObjectAfterRule` Targeting rules evaluated in ascending `priority`; the first matching rule wins. An empty array means the flag always serves `default_variation`. - `Conditions []AppFlagChangelogListResponseObjectAfterRulesCondition` Conditions the context must satisfy for this rule to match. An empty array matches all contexts. - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObject struct{…}` - `Attribute string` - `Operator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorNotEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "not_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorGreaterThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "greater_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorLessThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "less_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorGreaterThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "greater_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorLessThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "less_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorContains AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "contains"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorStartsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "starts_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorEndsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "ends_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "in"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorNotIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObject struct{…}` - `Clauses []AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClause` - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorNotEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "not_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorGreaterThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "greater_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorLessThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "less_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorGreaterThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorLessThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorContains AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "contains"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorStartsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "starts_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorEndsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "ends_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "in"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorNotIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObject struct{…}` - `Clauses []AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClause` - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorNotEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorLessThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorContains AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorStartsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorEndsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorNotIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClause` - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClause` - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClause` - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesUnion` - `UnionString` - `UnionFloat` - `UnionBool` - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesMap map[string, unknown]` - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesArray []unknown` - `LogicalOperator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectLogicalOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectLogicalOperatorAnd AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectLogicalOperatorOr AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectLogicalOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectLogicalOperatorAnd AppFlagChangelogListResponseObjectAfterRulesConditionsObjectLogicalOperator = "AND"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectLogicalOperatorOr AppFlagChangelogListResponseObjectAfterRulesConditionsObjectLogicalOperator = "OR"` - `Priority int64` Evaluation order; lower numbers are evaluated first. Must be unique across the flag's rules. - `ServeVariation string` Variation served when this rule matches. Must be a key in `variations`. - `Rollout AppFlagChangelogListResponseObjectAfterRulesRollout` - `Percentage float64` Percentage of matching traffic (0–100) served this variation. For multi-way splits, use cumulative upper bounds across rules (e.g. 30, 70, 100). - `Attribute string` Context attribute used for sticky bucketing. Defaults to `targetingKey`. If absent at evaluation time, bucketing is random per request. - `Variations map[string, AppFlagChangelogListResponseObjectAfterVariationsUnion]` Map of variation name to value. All values must be the same type (boolean, string, number, or JSON object/array). Each serialized value must be 10KB or smaller. - `UnionString` - `UnionFloat` - `UnionBool` - `type AppFlagChangelogListResponseObjectAfterVariationsMap map[string, unknown]` - `type AppFlagChangelogListResponseObjectAfterVariationsArray []unknown` - `Description string` - `Type AppFlagChangelogListResponseObjectAfterType` Value type of the flag's variations. Inferred from the variation values on write, so it may be omitted in requests. - `const AppFlagChangelogListResponseObjectAfterTypeBoolean AppFlagChangelogListResponseObjectAfterType = "boolean"` - `const AppFlagChangelogListResponseObjectAfterTypeString AppFlagChangelogListResponseObjectAfterType = "string"` - `const AppFlagChangelogListResponseObjectAfterTypeNumber AppFlagChangelogListResponseObjectAfterType = "number"` - `const AppFlagChangelogListResponseObjectAfterTypeJson AppFlagChangelogListResponseObjectAfterType = "json"` - `UpdatedAt string` - `UpdatedBy string` - `Event AppFlagChangelogListResponseObjectEvent` - `const AppFlagChangelogListResponseObjectEventDelete AppFlagChangelogListResponseObjectEvent = "delete"` - `FlagKey string` - `type AppFlagChangelogListResponseObject struct{…}` - `After AppFlagChangelogListResponseObjectAfter` - `DefaultVariation string` Variation served when no rule matches or the flag is disabled. Must be a key in `variations`. - `Enabled bool` When false, the flag bypasses all rules and always serves `default_variation`. - `Key string` Unique identifier for the flag within an app. Used in all evaluation and SDK calls. - `Rules []AppFlagChangelogListResponseObjectAfterRule` Targeting rules evaluated in ascending `priority`; the first matching rule wins. An empty array means the flag always serves `default_variation`. - `Conditions []AppFlagChangelogListResponseObjectAfterRulesCondition` Conditions the context must satisfy for this rule to match. An empty array matches all contexts. - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObject struct{…}` - `Attribute string` - `Operator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorNotEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "not_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorGreaterThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "greater_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorLessThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "less_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorGreaterThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "greater_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorLessThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "less_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorContains AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "contains"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorStartsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "starts_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorEndsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "ends_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "in"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperatorNotIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObject struct{…}` - `Clauses []AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClause` - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorNotEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "not_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorGreaterThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "greater_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorLessThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "less_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorGreaterThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorLessThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorContains AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "contains"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorStartsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "starts_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorEndsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "ends_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "in"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperatorNotIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObject struct{…}` - `Clauses []AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClause` - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorNotEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorLessThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorContains AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorStartsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorEndsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperatorNotIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClause` - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClause` - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClause` - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Attribute string` - `Operator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThan AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorGreaterThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "greater_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorLessThanOrEquals AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "less_than_or_equals"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorContains AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "contains"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorStartsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "starts_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorEndsWith AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "ends_with"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "in"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperatorNotIn AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectOperator = "not_in"` - `Value unknown` Value to compare against the context attribute. Must be an array for `in` and `not_in`; numeric and ISO-8601 datetime strings are accepted by the ordering operators. - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObject struct{…}` - `Clauses []AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesUnion` - `UnionString` - `UnionFloat` - `UnionBool` - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesMap map[string, unknown]` - `type AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesArray []unknown` - `LogicalOperator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectLogicalOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectLogicalOperatorAnd AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectLogicalOperatorOr AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectLogicalOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectLogicalOperatorAnd AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectLogicalOperator = "AND"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectLogicalOperatorOr AppFlagChangelogListResponseObjectAfterRulesConditionsObjectClausesObjectLogicalOperator = "OR"` - `LogicalOperator AppFlagChangelogListResponseObjectAfterRulesConditionsObjectLogicalOperator` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectLogicalOperatorAnd AppFlagChangelogListResponseObjectAfterRulesConditionsObjectLogicalOperator = "AND"` - `const AppFlagChangelogListResponseObjectAfterRulesConditionsObjectLogicalOperatorOr AppFlagChangelogListResponseObjectAfterRulesConditionsObjectLogicalOperator = "OR"` - `Priority int64` Evaluation order; lower numbers are evaluated first. Must be unique across the flag's rules. - `ServeVariation string` Variation served when this rule matches. Must be a key in `variations`. - `Rollout AppFlagChangelogListResponseObjectAfterRulesRollout` - `Percentage float64` Percentage of matching traffic (0–100) served this variation. For multi-way splits, use cumulative upper bounds across rules (e.g. 30, 70, 100). - `Attribute string` Context attribute used for sticky bucketing. Defaults to `targetingKey`. If absent at evaluation time, bucketing is random per request. - `Variations map[string, AppFlagChangelogListResponseObjectAfterVariationsUnion]` Map of variation name to value. All values must be the same type (boolean, string, number, or JSON object/array). Each serialized value must be 10KB or smaller. - `UnionString` - `UnionFloat` - `UnionBool` - `type AppFlagChangelogListResponseObjectAfterVariationsMap map[string, unknown]` - `type AppFlagChangelogListResponseObjectAfterVariationsArray []unknown` - `Description string` - `Type AppFlagChangelogListResponseObjectAfterType` Value type of the flag's variations. Inferred from the variation values on write, so it may be omitted in requests. - `const AppFlagChangelogListResponseObjectAfterTypeBoolean AppFlagChangelogListResponseObjectAfterType = "boolean"` - `const AppFlagChangelogListResponseObjectAfterTypeString AppFlagChangelogListResponseObjectAfterType = "string"` - `const AppFlagChangelogListResponseObjectAfterTypeNumber AppFlagChangelogListResponseObjectAfterType = "number"` - `const AppFlagChangelogListResponseObjectAfterTypeJson AppFlagChangelogListResponseObjectAfterType = "json"` - `UpdatedAt string` - `UpdatedBy string` - `Diff map[string, AppFlagChangelogListResponseObjectDiff]` - `From AppFlagChangelogListResponseObjectDiffFromUnion` - `UnionString` - `UnionFloat` - `UnionBool` - `type AppFlagChangelogListResponseObjectDiffFromMap map[string, unknown]` - `type AppFlagChangelogListResponseObjectDiffFromArray []unknown` - `To AppFlagChangelogListResponseObjectDiffToUnion` - `UnionString` - `UnionFloat` - `UnionBool` - `type AppFlagChangelogListResponseObjectDiffToMap map[string, unknown]` - `type AppFlagChangelogListResponseObjectDiffToArray []unknown` - `Event AppFlagChangelogListResponseObjectEvent` - `const AppFlagChangelogListResponseObjectEventUpdate AppFlagChangelogListResponseObjectEvent = "update"` - `FlagKey string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/flagship" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) page, err := client.Flagship.Apps.Flags.Changelog.List( context.TODO(), "app_id", "flag_key", flagship.AppFlagChangelogListParams{ AccountID: cloudflare.F("account_id"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### Response ```json { "errors": [ { "message": "message" } ], "messages": [ { "message": "message" } ], "result": [ { "after": { "default_variation": "x", "enabled": true, "key": "x", "rules": [ { "conditions": [ { "attribute": "x", "operator": "equals", "value": {} } ], "priority": 1, "serve_variation": "x", "rollout": { "percentage": 0, "attribute": "x" } } ], "variations": { "foo": "string" }, "description": "description", "type": "boolean", "updated_at": "updated_at", "updated_by": "updated_by" }, "event": "create", "flag_key": "flag_key" } ], "result_info": { "count": 0, "cursor": "cursor" }, "success": true } ``` # Evaluate ## Evaluate flag `client.Flagship.Apps.Evaluate.Get(ctx, appID, params) (*AppEvaluateGetResponse, error)` **get** `/accounts/{account_id}/flagship/apps/{app_id}/evaluate` Evaluates a flag against the provided context. Pass context attributes as query parameters; boolean and numeric strings are coerced automatically. For low-latency in-Worker evaluation, prefer the Flagship binding over this endpoint. ### Parameters - `appID string` App identifier. - `params AppEvaluateGetParams` - `AccountID param.Field[string]` Path param: Cloudflare account ID. - `FlagKey param.Field[string]` Query param: The flag key to evaluate. - `TargetingKey param.Field[string]` Query param: Context targeting key (per OpenFeature spec); used for percentage rollout bucketing. ### Returns - `type AppEvaluateGetResponse struct{…}` - `FlagKey string` - `Reason AppEvaluateGetResponseReason` - `const AppEvaluateGetResponseReasonTargetingMatch AppEvaluateGetResponseReason = "TARGETING_MATCH"` - `const AppEvaluateGetResponseReasonDefault AppEvaluateGetResponseReason = "DEFAULT"` - `const AppEvaluateGetResponseReasonDisabled AppEvaluateGetResponseReason = "DISABLED"` - `const AppEvaluateGetResponseReasonSplit AppEvaluateGetResponseReason = "SPLIT"` - `Variant string` - `Value AppEvaluateGetResponseValueUnion` - `UnionString` - `UnionFloat` - `UnionBool` - `type AppEvaluateGetResponseValueMap map[string, unknown]` - `type AppEvaluateGetResponseValueArray []unknown` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/flagship" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) evaluate, err := client.Flagship.Apps.Evaluate.Get( context.TODO(), "app_id", flagship.AppEvaluateGetParams{ AccountID: cloudflare.F("account_id"), FlagKey: cloudflare.F("flagKey"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", evaluate.FlagKey) } ``` #### Response ```json { "flagKey": "flagKey", "reason": "TARGETING_MATCH", "variant": "variant", "value": "string" } ```