ff-ruby-server-sdk 1.2.1 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/api.yaml +319 -30
- data/lib/ff/ruby/server/generated/lib/openapi_client/api/client_api.rb +27 -0
- data/lib/ff/ruby/server/generated/lib/openapi_client/api/metrics_api.rb +13 -10
- data/lib/ff/ruby/server/generated/lib/openapi_client/api/proxy_api.rb +159 -0
- data/lib/ff/ruby/server/generated/lib/openapi_client/configuration.rb +7 -0
- data/lib/ff/ruby/server/generated/lib/openapi_client/models/clause.rb +6 -5
- data/lib/ff/ruby/server/generated/lib/openapi_client/models/distribution.rb +3 -0
- data/lib/ff/ruby/server/generated/lib/openapi_client/models/error.rb +16 -4
- data/lib/ff/ruby/server/generated/lib/openapi_client/models/group_serving_rule.rb +257 -0
- data/lib/ff/ruby/server/generated/lib/openapi_client/models/inline_object.rb +223 -0
- data/lib/ff/ruby/server/generated/lib/openapi_client/models/pagination.rb +5 -0
- data/lib/ff/ruby/server/generated/lib/openapi_client/models/prerequisite.rb +3 -0
- data/lib/ff/ruby/server/generated/lib/openapi_client/models/proxy_config.rb +299 -0
- data/lib/ff/ruby/server/generated/lib/openapi_client/models/proxy_config_all_of.rb +220 -0
- data/lib/ff/ruby/server/generated/lib/openapi_client/models/proxy_config_all_of_environments.rb +251 -0
- data/lib/ff/ruby/server/generated/lib/openapi_client/models/segment.rb +23 -4
- data/lib/ff/ruby/server/generated/lib/openapi_client/models/serve.rb +1 -0
- data/lib/ff/ruby/server/generated/lib/openapi_client/models/serving_rule.rb +4 -5
- data/lib/ff/ruby/server/generated/lib/openapi_client/models/tag.rb +15 -8
- data/lib/ff/ruby/server/generated/lib/openapi_client/models/target.rb +11 -0
- data/lib/ff/ruby/server/generated/lib/openapi_client/models/target_map.rb +8 -0
- data/lib/ff/ruby/server/generated/lib/openapi_client/models/variation.rb +5 -0
- data/lib/ff/ruby/server/generated/lib/openapi_client/models/variation_map.rb +4 -0
- data/lib/ff/ruby/server/generated/lib/openapi_client/models/weighted_variation.rb +3 -0
- data/lib/ff/ruby/server/generated/lib/openapi_client.rb +6 -0
- data/lib/ff/ruby/server/sdk/api/config.rb +1 -1
- data/lib/ff/ruby/server/sdk/api/evaluator.rb +32 -78
- data/lib/ff/ruby/server/sdk/api/metrics_processor.rb +95 -50
- data/lib/ff/ruby/server/sdk/api/storage_repository.rb +14 -0
- data/lib/ff/ruby/server/sdk/common/sdk_codes.rb +9 -0
- data/lib/ff/ruby/server/sdk/connector/harness_connector.rb +12 -3
- data/lib/ff/ruby/server/sdk/version.rb +1 -1
- data/scripts/sdk_specs.sh +1 -1
- metadata +9 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aba1a45b397eb95bc2553bc91bea245d08afbbd22ca554002aa193253a32c6c8
|
4
|
+
data.tar.gz: '08d95e3f7102bf3464f9bce2e7b215141ab86dbaf26f442ece6ccd483c628f00'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b7cbe6267b64b4fa05589dc3255fb49d97d3e3a859a1b17779dc26f611ddb2138ce5e71f2bd8d6f4370a5bfc3966d5757e9e889df2ded6d04df79f4ec5546d9f
|
7
|
+
data.tar.gz: 0fed32b0db4f07ca3a1961a9ce86257711ab47d2a93847c686adf322fc38f347dd5d4bd90c7ed4ad276f5982d394b3b03f44b32296db257142a943f37ebc5662
|
data/api.yaml
CHANGED
@@ -14,6 +14,8 @@ servers:
|
|
14
14
|
tags:
|
15
15
|
- name: client
|
16
16
|
- name: metrics
|
17
|
+
- name: Proxy
|
18
|
+
description: APIs used by the ff-proxy
|
17
19
|
paths:
|
18
20
|
'/client/env/{environmentUUID}/feature-configs':
|
19
21
|
get:
|
@@ -29,8 +31,9 @@ paths:
|
|
29
31
|
description: Unique identifier for the environment object in the API.
|
30
32
|
schema:
|
31
33
|
type: string
|
34
|
+
- $ref: '#/components/parameters/clusterQueryOptionalParam'
|
32
35
|
security:
|
33
|
-
- BearerAuth: [
|
36
|
+
- BearerAuth: []
|
34
37
|
responses:
|
35
38
|
'200':
|
36
39
|
description: OK
|
@@ -59,8 +62,9 @@ paths:
|
|
59
62
|
description: Unique identifier for the environment object in the API.
|
60
63
|
schema:
|
61
64
|
type: string
|
65
|
+
- $ref: '#/components/parameters/clusterQueryOptionalParam'
|
62
66
|
security:
|
63
|
-
- BearerAuth: [
|
67
|
+
- BearerAuth: []
|
64
68
|
responses:
|
65
69
|
'200':
|
66
70
|
description: OK
|
@@ -82,8 +86,10 @@ paths:
|
|
82
86
|
description: Unique identifier for the environment object in the API.
|
83
87
|
schema:
|
84
88
|
type: string
|
89
|
+
- $ref: '#/components/parameters/clusterQueryOptionalParam'
|
90
|
+
- $ref: '#/components/parameters/segmentRulesV2QueryParam'
|
85
91
|
security:
|
86
|
-
- BearerAuth: [
|
92
|
+
- BearerAuth: []
|
87
93
|
responses:
|
88
94
|
'200':
|
89
95
|
description: OK
|
@@ -121,8 +127,10 @@ paths:
|
|
121
127
|
description: Unique identifier for the environment object in the API
|
122
128
|
schema:
|
123
129
|
type: string
|
130
|
+
- $ref: '#/components/parameters/clusterQueryOptionalParam'
|
131
|
+
- $ref: '#/components/parameters/segmentRulesV2QueryParam'
|
124
132
|
security:
|
125
|
-
- BearerAuth: [
|
133
|
+
- BearerAuth: []
|
126
134
|
responses:
|
127
135
|
'200':
|
128
136
|
description: OK
|
@@ -184,8 +192,9 @@ paths:
|
|
184
192
|
description: Unique identifier for the target object in the API.
|
185
193
|
schema:
|
186
194
|
type: string
|
195
|
+
- $ref: '#/components/parameters/clusterQueryOptionalParam'
|
187
196
|
security:
|
188
|
-
- BearerAuth: [
|
197
|
+
- BearerAuth: []
|
189
198
|
responses:
|
190
199
|
'200':
|
191
200
|
description: OK
|
@@ -194,10 +203,7 @@ paths:
|
|
194
203
|
schema:
|
195
204
|
allOf:
|
196
205
|
- $ref: '#/components/schemas/Pagination'
|
197
|
-
-
|
198
|
-
properties:
|
199
|
-
evaluations:
|
200
|
-
$ref: '#/components/schemas/Evaluations'
|
206
|
+
- $ref: '#/components/schemas/Evaluations'
|
201
207
|
'/client/env/{environmentUUID}/target/{target}/evaluations/{feature}':
|
202
208
|
get:
|
203
209
|
summary: Get feature evaluations for target
|
@@ -223,8 +229,9 @@ paths:
|
|
223
229
|
description: Unique identifier for the target object in the API.
|
224
230
|
schema:
|
225
231
|
type: string
|
232
|
+
- $ref: '#/components/parameters/clusterQueryOptionalParam'
|
226
233
|
security:
|
227
|
-
- BearerAuth: [
|
234
|
+
- BearerAuth: []
|
228
235
|
responses:
|
229
236
|
'200':
|
230
237
|
description: OK
|
@@ -232,7 +239,7 @@ paths:
|
|
232
239
|
application/json:
|
233
240
|
schema:
|
234
241
|
$ref: '#/components/schemas/Evaluation'
|
235
|
-
'/metrics/{
|
242
|
+
'/metrics/{environmentUUID}':
|
236
243
|
post:
|
237
244
|
tags:
|
238
245
|
- metrics
|
@@ -241,13 +248,15 @@ paths:
|
|
241
248
|
operationId: postMetrics
|
242
249
|
parameters:
|
243
250
|
- $ref: '#/components/parameters/environmentPathParam'
|
251
|
+
- $ref: '#/components/parameters/clusterQueryOptionalParam'
|
244
252
|
requestBody:
|
245
253
|
content:
|
246
254
|
application/json:
|
247
255
|
schema:
|
248
256
|
$ref: '#/components/schemas/Metrics'
|
249
257
|
security:
|
250
|
-
-
|
258
|
+
- ApiKeyAuth: []
|
259
|
+
- BearerAuth: []
|
251
260
|
responses:
|
252
261
|
'200':
|
253
262
|
description: OK
|
@@ -269,8 +278,9 @@ paths:
|
|
269
278
|
schema:
|
270
279
|
type: string
|
271
280
|
required: true
|
281
|
+
- $ref: '#/components/parameters/clusterQueryOptionalParam'
|
272
282
|
security:
|
273
|
-
- BearerAuth: [
|
283
|
+
- BearerAuth: []
|
274
284
|
responses:
|
275
285
|
'200':
|
276
286
|
description: OK
|
@@ -293,65 +303,175 @@ paths:
|
|
293
303
|
default: '*'
|
294
304
|
'503':
|
295
305
|
description: Service Unavailable
|
306
|
+
/proxy/config:
|
307
|
+
get:
|
308
|
+
summary: Gets Proxy config for multiple environments
|
309
|
+
description: >-
|
310
|
+
Gets Proxy config for multiple environments if the Key query param is
|
311
|
+
provided or gets config for a single environment if an environment query
|
312
|
+
param is provided
|
313
|
+
operationId: GetProxyConfig
|
314
|
+
tags:
|
315
|
+
- Proxy
|
316
|
+
parameters:
|
317
|
+
- $ref: '#/components/parameters/pageNumber'
|
318
|
+
- $ref: '#/components/parameters/pageSize'
|
319
|
+
- $ref: '#/components/parameters/clusterQueryOptionalParam'
|
320
|
+
- in: query
|
321
|
+
name: environment
|
322
|
+
description: >-
|
323
|
+
Accepts an EnvironmentID. If this is provided then the endpoint will
|
324
|
+
only return config for this environment. If this is left empty then
|
325
|
+
the Proxy will return config for all environments associated with
|
326
|
+
the Proxy Key.
|
327
|
+
required: false
|
328
|
+
schema:
|
329
|
+
type: string
|
330
|
+
- in: query
|
331
|
+
name: key
|
332
|
+
description: Accpets a Proxy Key.
|
333
|
+
required: true
|
334
|
+
schema:
|
335
|
+
type: string
|
336
|
+
security:
|
337
|
+
- BearerAuth: []
|
338
|
+
responses:
|
339
|
+
'200':
|
340
|
+
$ref: '#/components/responses/ProxyConfigResponse'
|
341
|
+
'400':
|
342
|
+
$ref: '#/components/responses/BadRequest'
|
343
|
+
'401':
|
344
|
+
$ref: '#/components/responses/Unauthenticated'
|
345
|
+
'403':
|
346
|
+
$ref: '#/components/responses/Unauthorized'
|
347
|
+
'404':
|
348
|
+
$ref: '#/components/responses/NotFound'
|
349
|
+
'500':
|
350
|
+
$ref: '#/components/responses/InternalServerError'
|
351
|
+
/proxy/auth:
|
352
|
+
post:
|
353
|
+
summary: Endpoint that the Proxy can use to authenticate with the client server
|
354
|
+
description: Endpoint that the Proxy can use to authenticate with the client server
|
355
|
+
operationId: AuthenticateProxyKey
|
356
|
+
tags:
|
357
|
+
- Proxy
|
358
|
+
requestBody:
|
359
|
+
content:
|
360
|
+
application/json:
|
361
|
+
schema:
|
362
|
+
type: object
|
363
|
+
properties:
|
364
|
+
proxyKey:
|
365
|
+
type: string
|
366
|
+
example: 896045f3-42ee-4e73-9154-086644768b96
|
367
|
+
required:
|
368
|
+
- proxyKey
|
369
|
+
responses:
|
370
|
+
'200':
|
371
|
+
description: OK
|
372
|
+
content:
|
373
|
+
application/json:
|
374
|
+
schema:
|
375
|
+
$ref: '#/components/schemas/AuthenticationResponse'
|
376
|
+
'401':
|
377
|
+
$ref: '#/components/responses/Unauthenticated'
|
378
|
+
'403':
|
379
|
+
$ref: '#/components/responses/Unauthorized'
|
380
|
+
'404':
|
381
|
+
$ref: '#/components/responses/NotFound'
|
382
|
+
'500':
|
383
|
+
$ref: '#/components/responses/InternalServerError'
|
296
384
|
components:
|
297
385
|
schemas:
|
298
386
|
FeatureState:
|
299
387
|
type: string
|
388
|
+
description: The state of a flag either off or on
|
300
389
|
enum:
|
301
390
|
- 'on'
|
302
391
|
- 'off'
|
303
392
|
Variation:
|
304
393
|
type: object
|
394
|
+
description: A variation of a flag that can be returned to a target
|
305
395
|
properties:
|
306
396
|
identifier:
|
307
397
|
type: string
|
398
|
+
description: The unique identifier for the variation
|
399
|
+
example: off-variation
|
308
400
|
value:
|
309
401
|
type: string
|
402
|
+
description: >-
|
403
|
+
The variation value to serve such as true or false for a boolean
|
404
|
+
flag
|
405
|
+
example: 'true'
|
310
406
|
name:
|
311
407
|
type: string
|
408
|
+
description: The user friendly name of the variation
|
409
|
+
example: Off VAriation
|
312
410
|
description:
|
313
411
|
type: string
|
412
|
+
description: A description of the variation
|
314
413
|
required:
|
315
414
|
- identifier
|
316
415
|
- value
|
317
416
|
Clause:
|
318
417
|
type: object
|
418
|
+
description: A clause describes what conditions are used to evaluate a flag
|
319
419
|
properties:
|
320
420
|
id:
|
321
421
|
type: string
|
422
|
+
description: The unique ID for the clause
|
423
|
+
example: 32434243
|
322
424
|
attribute:
|
323
425
|
type: string
|
426
|
+
description: >-
|
427
|
+
The attribute to use in the clause. This can be any target
|
428
|
+
attribute
|
429
|
+
example: identifier
|
324
430
|
op:
|
325
431
|
type: string
|
432
|
+
description: 'The type of operation such as equals, starts_with, contains'
|
433
|
+
example: starts_with
|
326
434
|
values:
|
327
435
|
type: array
|
436
|
+
description: The values that are compared against the operator
|
328
437
|
items:
|
329
438
|
type: string
|
330
439
|
negate:
|
331
440
|
type: boolean
|
441
|
+
description: Is the operation negated?
|
442
|
+
example: false
|
332
443
|
required:
|
333
|
-
- id
|
334
444
|
- attribute
|
335
445
|
- op
|
336
446
|
- negate
|
337
447
|
- values
|
338
448
|
WeightedVariation:
|
339
449
|
type: object
|
450
|
+
description: >-
|
451
|
+
A variation and the weighting it should receive as part of a percentage
|
452
|
+
rollout
|
340
453
|
properties:
|
341
454
|
variation:
|
342
455
|
type: string
|
456
|
+
description: The variation identifier
|
457
|
+
example: off-variation
|
343
458
|
weight:
|
344
459
|
type: integer
|
460
|
+
description: The weight to be given to the variation in percent
|
461
|
+
example: 50
|
345
462
|
required:
|
346
463
|
- variation
|
347
464
|
- weight
|
348
465
|
Distribution:
|
349
466
|
type: object
|
467
|
+
description: Describes a distribution rule
|
350
468
|
properties:
|
351
469
|
bucketBy:
|
352
470
|
type: string
|
471
|
+
description: The attribute to use when distributing targets across buckets
|
353
472
|
variations:
|
354
473
|
type: array
|
474
|
+
description: A list of variations and the weight that should be given to each
|
355
475
|
items:
|
356
476
|
$ref: '#/components/schemas/WeightedVariation'
|
357
477
|
required:
|
@@ -359,6 +479,9 @@ components:
|
|
359
479
|
- variations
|
360
480
|
Serve:
|
361
481
|
type: object
|
482
|
+
description: >-
|
483
|
+
Describe the distribution rule and the variation that should be served
|
484
|
+
to the target
|
362
485
|
properties:
|
363
486
|
distribution:
|
364
487
|
$ref: '#/components/schemas/Distribution'
|
@@ -366,13 +489,20 @@ components:
|
|
366
489
|
type: string
|
367
490
|
ServingRule:
|
368
491
|
type: object
|
492
|
+
description: The rule used to determine what variation to serve to a target
|
369
493
|
properties:
|
370
494
|
ruleId:
|
371
495
|
type: string
|
496
|
+
description: The unique identifier for this rule
|
372
497
|
priority:
|
373
498
|
type: integer
|
499
|
+
description: >-
|
500
|
+
The rules priority relative to other rules. The rules are evaluated
|
501
|
+
in order with 1 being the highest
|
502
|
+
example: 1
|
374
503
|
clauses:
|
375
504
|
type: array
|
505
|
+
description: A list of clauses to use in the rule
|
376
506
|
items:
|
377
507
|
$ref: '#/components/schemas/Clause'
|
378
508
|
serve:
|
@@ -381,14 +511,16 @@ components:
|
|
381
511
|
- priority
|
382
512
|
- clauses
|
383
513
|
- serve
|
384
|
-
- ruleId
|
385
514
|
Prerequisite:
|
386
515
|
type: object
|
516
|
+
description: Feature Flag pre-requisites
|
387
517
|
properties:
|
388
518
|
feature:
|
389
519
|
type: string
|
520
|
+
description: The feature identifier that is the prerequisite
|
390
521
|
variations:
|
391
522
|
type: array
|
523
|
+
description: A list of variations that must be met
|
392
524
|
items:
|
393
525
|
type: string
|
394
526
|
required:
|
@@ -396,25 +528,35 @@ components:
|
|
396
528
|
- variations
|
397
529
|
TargetMap:
|
398
530
|
type: object
|
531
|
+
description: Target map provides the details of a target that belongs to a flag
|
399
532
|
properties:
|
400
533
|
identifier:
|
401
534
|
type: string
|
535
|
+
description: The identifier for the target
|
402
536
|
name:
|
403
537
|
type: string
|
538
|
+
description: The name of the target
|
404
539
|
required:
|
405
|
-
-
|
540
|
+
- identifier
|
406
541
|
- name
|
407
542
|
VariationMap:
|
408
543
|
type: object
|
544
|
+
description: >-
|
545
|
+
A mapping of variations to targets and target groups (segments). The
|
546
|
+
targets listed here should receive this variation.
|
409
547
|
properties:
|
410
548
|
variation:
|
411
549
|
type: string
|
550
|
+
description: The variation identifier
|
551
|
+
example: off-variation
|
412
552
|
targets:
|
413
553
|
type: array
|
554
|
+
description: A list of target mappings
|
414
555
|
items:
|
415
556
|
$ref: '#/components/schemas/TargetMap'
|
416
557
|
targetSegments:
|
417
558
|
type: array
|
559
|
+
description: A list of target groups (segments)
|
418
560
|
items:
|
419
561
|
type: string
|
420
562
|
required:
|
@@ -468,86 +610,123 @@ components:
|
|
468
610
|
- state
|
469
611
|
- kind
|
470
612
|
- variations
|
471
|
-
- defaultTarget
|
472
613
|
- offVariation
|
473
614
|
- defaultServe
|
474
615
|
Tag:
|
475
616
|
type: object
|
476
|
-
description: A name and
|
617
|
+
description: A Tag object used to tag feature flags - consists of name and identifier
|
477
618
|
properties:
|
478
619
|
name:
|
479
620
|
type: string
|
480
|
-
|
621
|
+
description: The name of the tag
|
622
|
+
example: feature-flag-tag-1
|
623
|
+
identifier:
|
481
624
|
type: string
|
625
|
+
description: The identifier of the tag
|
626
|
+
example: feature-flag-tag-1
|
482
627
|
required:
|
483
628
|
- name
|
629
|
+
- identifier
|
484
630
|
Segment:
|
485
631
|
type: object
|
632
|
+
description: A Target Group (Segment) response
|
486
633
|
properties:
|
487
634
|
identifier:
|
488
635
|
type: string
|
489
|
-
description: Unique identifier for the
|
636
|
+
description: Unique identifier for the target group.
|
490
637
|
name:
|
491
638
|
type: string
|
492
|
-
description: Name of the
|
639
|
+
description: Name of the target group.
|
493
640
|
example: Beta Testers
|
494
641
|
environment:
|
495
642
|
type: string
|
643
|
+
description: The environment this target group belongs to
|
644
|
+
example: Production
|
496
645
|
tags:
|
497
646
|
type: array
|
647
|
+
description: Tags for this target group
|
498
648
|
items:
|
499
649
|
$ref: '#/components/schemas/Tag'
|
500
650
|
included:
|
501
651
|
type: array
|
652
|
+
description: A list of Targets who belong to this target group
|
502
653
|
items:
|
503
654
|
$ref: '#/components/schemas/Target'
|
504
655
|
excluded:
|
505
656
|
type: array
|
657
|
+
description: A list of Targets who are excluded from this target group
|
506
658
|
items:
|
507
659
|
$ref: '#/components/schemas/Target'
|
508
660
|
rules:
|
509
661
|
type: array
|
510
662
|
items:
|
511
663
|
$ref: '#/components/schemas/Clause'
|
664
|
+
servingRules:
|
665
|
+
type: array
|
666
|
+
items:
|
667
|
+
$ref: '#/components/schemas/GroupServingRule'
|
512
668
|
description: >-
|
513
669
|
An array of rules that can cause a user to be included in this
|
514
670
|
segment.
|
515
671
|
createdAt:
|
516
672
|
type: integer
|
673
|
+
description: The data and time in milliseconds when the group was created
|
517
674
|
format: int64
|
518
675
|
modifiedAt:
|
519
676
|
type: integer
|
677
|
+
description: The data and time in milliseconds when the group was last modified
|
520
678
|
format: int64
|
521
679
|
version:
|
522
680
|
type: integer
|
681
|
+
description: >-
|
682
|
+
The version of this group. Each time it is modified the version is
|
683
|
+
incremented
|
684
|
+
example: 1
|
523
685
|
format: int64
|
524
686
|
required:
|
525
687
|
- identifier
|
526
688
|
- name
|
527
689
|
Target:
|
528
690
|
type: object
|
691
|
+
description: A Target object
|
529
692
|
properties:
|
530
693
|
identifier:
|
531
694
|
type: string
|
695
|
+
description: The unique identifier for this target
|
696
|
+
example: john-doe
|
532
697
|
account:
|
533
698
|
type: string
|
699
|
+
description: The account ID that the target belongs to
|
700
|
+
example: abcXDdffdaffd
|
534
701
|
org:
|
535
702
|
type: string
|
703
|
+
description: The identifier for the organization that the target belongs to
|
536
704
|
environment:
|
537
705
|
type: string
|
706
|
+
description: The identifier for the environment that the target belongs to
|
538
707
|
project:
|
539
708
|
type: string
|
709
|
+
description: The identifier for the project that this target belongs to
|
540
710
|
name:
|
541
711
|
type: string
|
712
|
+
description: The name of this Target
|
713
|
+
example: John Doe
|
542
714
|
anonymous:
|
543
715
|
type: boolean
|
716
|
+
description: Indicates if this target is anonymous
|
544
717
|
attributes:
|
545
718
|
type: object
|
719
|
+
description: a JSON representation of the attributes for this target
|
720
|
+
example:
|
721
|
+
age: 20
|
722
|
+
location: Belfast
|
546
723
|
createdAt:
|
547
724
|
type: integer
|
725
|
+
description: The date and time in milliseconds when this Target was created
|
548
726
|
format: int64
|
549
727
|
segments:
|
550
728
|
type: array
|
729
|
+
description: A list of Target Groups (Segments) that this Target belongs to
|
551
730
|
items:
|
552
731
|
$ref: '#/components/schemas/Segment'
|
553
732
|
required:
|
@@ -557,13 +736,42 @@ components:
|
|
557
736
|
- project
|
558
737
|
- account
|
559
738
|
- org
|
739
|
+
GroupServingRule:
|
740
|
+
type: object
|
741
|
+
description: The rule used to determine what variation to serve to a target
|
742
|
+
properties:
|
743
|
+
ruleId:
|
744
|
+
type: string
|
745
|
+
description: The unique identifier for this rule
|
746
|
+
priority:
|
747
|
+
type: integer
|
748
|
+
description: >-
|
749
|
+
The rules priority relative to other rules. The rules are evaluated
|
750
|
+
in order with 1 being the highest
|
751
|
+
example: 1
|
752
|
+
clauses:
|
753
|
+
type: array
|
754
|
+
description: A list of clauses to use in the rule
|
755
|
+
items:
|
756
|
+
$ref: '#/components/schemas/Clause'
|
757
|
+
required:
|
758
|
+
- ruleId
|
759
|
+
- clauses
|
760
|
+
- priority
|
560
761
|
Error:
|
561
762
|
type: object
|
562
763
|
properties:
|
563
764
|
code:
|
564
765
|
type: string
|
766
|
+
description: The http error code
|
767
|
+
example: 404
|
565
768
|
message:
|
566
769
|
type: string
|
770
|
+
description: The reason the request failed
|
771
|
+
example: 'Error retrieving projects, organization ''default_org'' does not exist'
|
772
|
+
details:
|
773
|
+
type: object
|
774
|
+
description: Additional details about the error
|
567
775
|
required:
|
568
776
|
- code
|
569
777
|
- message
|
@@ -600,23 +808,31 @@ components:
|
|
600
808
|
properties:
|
601
809
|
version:
|
602
810
|
type: integer
|
811
|
+
description: >-
|
812
|
+
The version of this object. The version will be incremented each
|
813
|
+
time the object is modified
|
814
|
+
example: 5
|
603
815
|
pageCount:
|
604
816
|
type: integer
|
817
|
+
description: The total number of pages
|
818
|
+
example: 100
|
605
819
|
itemCount:
|
606
820
|
type: integer
|
821
|
+
description: The total number of items
|
607
822
|
example: 1
|
608
823
|
pageSize:
|
609
824
|
type: integer
|
825
|
+
description: The number of items per page
|
610
826
|
example: 1
|
611
827
|
pageIndex:
|
612
828
|
type: integer
|
829
|
+
description: The current page
|
613
830
|
example: 0
|
614
831
|
required:
|
615
832
|
- pageCount
|
616
833
|
- itemCount
|
617
834
|
- pageSize
|
618
835
|
- pageIndex
|
619
|
-
- pageIndex
|
620
836
|
Evaluation:
|
621
837
|
type: object
|
622
838
|
properties:
|
@@ -696,11 +912,80 @@ components:
|
|
696
912
|
type: array
|
697
913
|
items:
|
698
914
|
$ref: '#/components/schemas/MetricsData'
|
915
|
+
ProxyConfig:
|
916
|
+
type: object
|
917
|
+
description: TBD
|
918
|
+
allOf:
|
919
|
+
- $ref: '#/components/schemas/Pagination'
|
920
|
+
- properties:
|
921
|
+
environments:
|
922
|
+
type: array
|
923
|
+
items:
|
924
|
+
type: object
|
925
|
+
properties:
|
926
|
+
id:
|
927
|
+
type: string
|
928
|
+
apiKeys:
|
929
|
+
type: array
|
930
|
+
items:
|
931
|
+
type: string
|
932
|
+
featureConfigs:
|
933
|
+
type: array
|
934
|
+
items:
|
935
|
+
$ref: '#/components/schemas/FeatureConfig'
|
936
|
+
segments:
|
937
|
+
type: array
|
938
|
+
items:
|
939
|
+
$ref: '#/components/schemas/Segment'
|
699
940
|
securitySchemes:
|
941
|
+
ApiKeyAuth:
|
942
|
+
type: apiKey
|
943
|
+
in: header
|
944
|
+
name: api-key
|
700
945
|
BearerAuth:
|
701
946
|
type: http
|
702
947
|
scheme: bearer
|
703
948
|
bearerFormat: JWT
|
949
|
+
parameters:
|
950
|
+
clusterQueryOptionalParam:
|
951
|
+
name: cluster
|
952
|
+
in: query
|
953
|
+
required: false
|
954
|
+
description: Unique identifier for the cluster for the account
|
955
|
+
schema:
|
956
|
+
type: string
|
957
|
+
segmentRulesV2QueryParam:
|
958
|
+
name: rules
|
959
|
+
in: query
|
960
|
+
required: false
|
961
|
+
description: >-
|
962
|
+
When set to rules=v2 will return AND rule compatible serving_rules
|
963
|
+
field. When not set or set to any other value will return old rules
|
964
|
+
field only compatible with OR rules.
|
965
|
+
allowEmptyValue: true
|
966
|
+
schema:
|
967
|
+
type: string
|
968
|
+
environmentPathParam:
|
969
|
+
name: environmentUUID
|
970
|
+
in: path
|
971
|
+
required: true
|
972
|
+
description: environment parameter in query.
|
973
|
+
schema:
|
974
|
+
type: string
|
975
|
+
pageNumber:
|
976
|
+
name: pageNumber
|
977
|
+
in: query
|
978
|
+
required: false
|
979
|
+
description: PageNumber
|
980
|
+
schema:
|
981
|
+
type: integer
|
982
|
+
pageSize:
|
983
|
+
name: pageSize
|
984
|
+
in: query
|
985
|
+
required: false
|
986
|
+
description: PageSize
|
987
|
+
schema:
|
988
|
+
type: integer
|
704
989
|
responses:
|
705
990
|
Unauthenticated:
|
706
991
|
description: Unauthenticated
|
@@ -726,11 +1011,15 @@ components:
|
|
726
1011
|
application/json:
|
727
1012
|
schema:
|
728
1013
|
$ref: '#/components/schemas/Error'
|
729
|
-
|
730
|
-
|
731
|
-
|
732
|
-
|
733
|
-
|
734
|
-
|
735
|
-
|
736
|
-
|
1014
|
+
ProxyConfigResponse:
|
1015
|
+
description: OK
|
1016
|
+
content:
|
1017
|
+
application/json:
|
1018
|
+
schema:
|
1019
|
+
$ref: '#/components/schemas/ProxyConfig'
|
1020
|
+
BadRequest:
|
1021
|
+
description: Bad request
|
1022
|
+
content:
|
1023
|
+
application/json:
|
1024
|
+
schema:
|
1025
|
+
$ref: '#/components/schemas/Error'
|