zernio-sdk 0.0.558 → 0.0.560
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/docs/ProfilesApi.md +17 -7
- data/docs/ProfilesListResponse.md +7 -1
- data/lib/zernio-sdk/api/profiles_api.rb +32 -4
- data/lib/zernio-sdk/models/profiles_list_response.rb +34 -4
- data/lib/zernio-sdk/version.rb +1 -1
- data/openapi.yaml +50 -3
- data/spec/api/profiles_api_spec.rb +6 -2
- data/spec/models/profiles_list_response_spec.rb +18 -0
- metadata +1486 -1486
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bcaa3f1e5d1d253bd1790b6e44de496391f7bf7b035f046c9382c8b31d650c8e
|
|
4
|
+
data.tar.gz: 68669d6d6a1d35f7fae39ce311632729e8f68c9682682f661cb61472e18e783d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 15bd978afe9fcd59818103203f456d93abcebf1e0e9e3caf7935b73a353e99c72464e841883329457c46ddf422fafa1eb0c5aeaa902d0e428f473e257480a9ac
|
|
7
|
+
data.tar.gz: f7ffc42d70ae75e14c4ded6a8fc1971975d0f1e0fd70a8152a41b65eae81220fedb9722d2e7128be6ae8037c30ce8ecc3d831cad81fbd16af85dacf5baa38423
|
data/docs/ProfilesApi.md
CHANGED
|
@@ -13,11 +13,11 @@ All URIs are relative to *https://zernio.com/api*
|
|
|
13
13
|
|
|
14
14
|
## create_profile
|
|
15
15
|
|
|
16
|
-
> <ProfileCreateResponse> create_profile(create_profile_request)
|
|
16
|
+
> <ProfileCreateResponse> create_profile(create_profile_request, opts)
|
|
17
17
|
|
|
18
18
|
Create profile
|
|
19
19
|
|
|
20
|
-
Creates a new profile with a name, optional description, and color.
|
|
20
|
+
Creates a new profile with a name, optional description, and color. Names are unique per workspace: a duplicate returns a 409 whose details.existingProfileId carries the id of the existing profile. Send an Idempotency-Key header to make retries safe: a retried create with the same key and body replays the original 201 (same _id) instead of conflicting.
|
|
21
21
|
|
|
22
22
|
### Examples
|
|
23
23
|
|
|
@@ -32,10 +32,13 @@ end
|
|
|
32
32
|
|
|
33
33
|
api_instance = Zernio::ProfilesApi.new
|
|
34
34
|
create_profile_request = Zernio::CreateProfileRequest.new({name: 'name_example'}) # CreateProfileRequest |
|
|
35
|
+
opts = {
|
|
36
|
+
idempotency_key: 'idempotency_key_example' # String | Optional client-generated unique key (e.g. a UUID) that makes create retries safe. Same key + same body replays the original response; same key + different body → 422; key still processing → 409.
|
|
37
|
+
}
|
|
35
38
|
|
|
36
39
|
begin
|
|
37
40
|
# Create profile
|
|
38
|
-
result = api_instance.create_profile(create_profile_request)
|
|
41
|
+
result = api_instance.create_profile(create_profile_request, opts)
|
|
39
42
|
p result
|
|
40
43
|
rescue Zernio::ApiError => e
|
|
41
44
|
puts "Error when calling ProfilesApi->create_profile: #{e}"
|
|
@@ -46,12 +49,12 @@ end
|
|
|
46
49
|
|
|
47
50
|
This returns an Array which contains the response data, status code and headers.
|
|
48
51
|
|
|
49
|
-
> <Array(<ProfileCreateResponse>, Integer, Hash)> create_profile_with_http_info(create_profile_request)
|
|
52
|
+
> <Array(<ProfileCreateResponse>, Integer, Hash)> create_profile_with_http_info(create_profile_request, opts)
|
|
50
53
|
|
|
51
54
|
```ruby
|
|
52
55
|
begin
|
|
53
56
|
# Create profile
|
|
54
|
-
data, status_code, headers = api_instance.create_profile_with_http_info(create_profile_request)
|
|
57
|
+
data, status_code, headers = api_instance.create_profile_with_http_info(create_profile_request, opts)
|
|
55
58
|
p status_code # => 2xx
|
|
56
59
|
p headers # => { ... }
|
|
57
60
|
p data # => <ProfileCreateResponse>
|
|
@@ -65,6 +68,7 @@ end
|
|
|
65
68
|
| Name | Type | Description | Notes |
|
|
66
69
|
| ---- | ---- | ----------- | ----- |
|
|
67
70
|
| **create_profile_request** | [**CreateProfileRequest**](CreateProfileRequest.md) | | |
|
|
71
|
+
| **idempotency_key** | **String** | Optional client-generated unique key (e.g. a UUID) that makes create retries safe. Same key + same body replays the original response; same key + different body → 422; key still processing → 409. | [optional] |
|
|
68
72
|
|
|
69
73
|
### Return type
|
|
70
74
|
|
|
@@ -224,7 +228,7 @@ end
|
|
|
224
228
|
|
|
225
229
|
List profiles
|
|
226
230
|
|
|
227
|
-
Returns profiles sorted by creation date. Use includeOverLimit=true to include profiles that exceed the plan limit.
|
|
231
|
+
Returns profiles sorted default-first, then by creation date. Filter with name (exact match) and paginate with limit/skip; without those params the full list is returned unchanged. Use includeOverLimit=true to include profiles that exceed the plan limit.
|
|
228
232
|
|
|
229
233
|
### Examples
|
|
230
234
|
|
|
@@ -239,7 +243,10 @@ end
|
|
|
239
243
|
|
|
240
244
|
api_instance = Zernio::ProfilesApi.new
|
|
241
245
|
opts = {
|
|
242
|
-
include_over_limit: true # Boolean | When true, includes over-limit profiles (marked with isOverLimit: true).
|
|
246
|
+
include_over_limit: true, # Boolean | When true, includes over-limit profiles (marked with isOverLimit: true).
|
|
247
|
+
name: 'name_example', # String | Exact-match filter on the profile name. Useful to recover a profile id after an ambiguous create (timeout followed by a 409 on retry).
|
|
248
|
+
limit: 56, # Integer | Page size. When limit or skip is present, the response includes total and skip (and echoes limit).
|
|
249
|
+
skip: 56 # Integer | Number of profiles to skip, applied after sorting and filtering.
|
|
243
250
|
}
|
|
244
251
|
|
|
245
252
|
begin
|
|
@@ -274,6 +281,9 @@ end
|
|
|
274
281
|
| Name | Type | Description | Notes |
|
|
275
282
|
| ---- | ---- | ----------- | ----- |
|
|
276
283
|
| **include_over_limit** | **Boolean** | When true, includes over-limit profiles (marked with isOverLimit: true). | [optional][default to false] |
|
|
284
|
+
| **name** | **String** | Exact-match filter on the profile name. Useful to recover a profile id after an ambiguous create (timeout followed by a 409 on retry). | [optional] |
|
|
285
|
+
| **limit** | **Integer** | Page size. When limit or skip is present, the response includes total and skip (and echoes limit). | [optional] |
|
|
286
|
+
| **skip** | **Integer** | Number of profiles to skip, applied after sorting and filtering. | [optional] |
|
|
277
287
|
|
|
278
288
|
### Return type
|
|
279
289
|
|
|
@@ -5,6 +5,9 @@
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **profiles** | [**Array<Profile>**](Profile.md) | | [optional] |
|
|
8
|
+
| **total** | **Integer** | Total matching profiles across all pages. Present only when limit or skip was passed. | [optional] |
|
|
9
|
+
| **skip** | **Integer** | Offset applied. Present only when limit or skip was passed. | [optional] |
|
|
10
|
+
| **limit** | **Integer** | Echo of the limit query param. Present only when it was passed. | [optional] |
|
|
8
11
|
|
|
9
12
|
## Example
|
|
10
13
|
|
|
@@ -12,7 +15,10 @@
|
|
|
12
15
|
require 'zernio-sdk'
|
|
13
16
|
|
|
14
17
|
instance = Zernio::ProfilesListResponse.new(
|
|
15
|
-
profiles: null
|
|
18
|
+
profiles: null,
|
|
19
|
+
total: null,
|
|
20
|
+
skip: null,
|
|
21
|
+
limit: null
|
|
16
22
|
)
|
|
17
23
|
```
|
|
18
24
|
|
|
@@ -20,9 +20,10 @@ module Zernio
|
|
|
20
20
|
@api_client = api_client
|
|
21
21
|
end
|
|
22
22
|
# Create profile
|
|
23
|
-
# Creates a new profile with a name, optional description, and color.
|
|
23
|
+
# Creates a new profile with a name, optional description, and color. Names are unique per workspace: a duplicate returns a 409 whose details.existingProfileId carries the id of the existing profile. Send an Idempotency-Key header to make retries safe: a retried create with the same key and body replays the original 201 (same _id) instead of conflicting.
|
|
24
24
|
# @param create_profile_request [CreateProfileRequest]
|
|
25
25
|
# @param [Hash] opts the optional parameters
|
|
26
|
+
# @option opts [String] :idempotency_key Optional client-generated unique key (e.g. a UUID) that makes create retries safe. Same key + same body replays the original response; same key + different body → 422; key still processing → 409.
|
|
26
27
|
# @return [ProfileCreateResponse]
|
|
27
28
|
def create_profile(create_profile_request, opts = {})
|
|
28
29
|
data, _status_code, _headers = create_profile_with_http_info(create_profile_request, opts)
|
|
@@ -30,9 +31,10 @@ module Zernio
|
|
|
30
31
|
end
|
|
31
32
|
|
|
32
33
|
# Create profile
|
|
33
|
-
# Creates a new profile with a name, optional description, and color.
|
|
34
|
+
# Creates a new profile with a name, optional description, and color. Names are unique per workspace: a duplicate returns a 409 whose details.existingProfileId carries the id of the existing profile. Send an Idempotency-Key header to make retries safe: a retried create with the same key and body replays the original 201 (same _id) instead of conflicting.
|
|
34
35
|
# @param create_profile_request [CreateProfileRequest]
|
|
35
36
|
# @param [Hash] opts the optional parameters
|
|
37
|
+
# @option opts [String] :idempotency_key Optional client-generated unique key (e.g. a UUID) that makes create retries safe. Same key + same body replays the original response; same key + different body → 422; key still processing → 409.
|
|
36
38
|
# @return [Array<(ProfileCreateResponse, Integer, Hash)>] ProfileCreateResponse data, response status code and response headers
|
|
37
39
|
def create_profile_with_http_info(create_profile_request, opts = {})
|
|
38
40
|
if @api_client.config.debugging
|
|
@@ -42,6 +44,10 @@ module Zernio
|
|
|
42
44
|
if @api_client.config.client_side_validation && create_profile_request.nil?
|
|
43
45
|
fail ArgumentError, "Missing the required parameter 'create_profile_request' when calling ProfilesApi.create_profile"
|
|
44
46
|
end
|
|
47
|
+
if @api_client.config.client_side_validation && !opts[:'idempotency_key'].nil? && opts[:'idempotency_key'].to_s.length > 255
|
|
48
|
+
fail ArgumentError, 'invalid value for "opts[:"idempotency_key"]" when calling ProfilesApi.create_profile, the character length must be smaller than or equal to 255.'
|
|
49
|
+
end
|
|
50
|
+
|
|
45
51
|
# resource path
|
|
46
52
|
local_var_path = '/v1/profiles'
|
|
47
53
|
|
|
@@ -57,6 +63,7 @@ module Zernio
|
|
|
57
63
|
if !content_type.nil?
|
|
58
64
|
header_params['Content-Type'] = content_type
|
|
59
65
|
end
|
|
66
|
+
header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
|
|
60
67
|
|
|
61
68
|
# form parameters
|
|
62
69
|
form_params = opts[:form_params] || {}
|
|
@@ -214,9 +221,12 @@ module Zernio
|
|
|
214
221
|
end
|
|
215
222
|
|
|
216
223
|
# List profiles
|
|
217
|
-
# Returns profiles sorted by creation date. Use includeOverLimit=true to include profiles that exceed the plan limit.
|
|
224
|
+
# Returns profiles sorted default-first, then by creation date. Filter with name (exact match) and paginate with limit/skip; without those params the full list is returned unchanged. Use includeOverLimit=true to include profiles that exceed the plan limit.
|
|
218
225
|
# @param [Hash] opts the optional parameters
|
|
219
226
|
# @option opts [Boolean] :include_over_limit When true, includes over-limit profiles (marked with isOverLimit: true). (default to false)
|
|
227
|
+
# @option opts [String] :name Exact-match filter on the profile name. Useful to recover a profile id after an ambiguous create (timeout followed by a 409 on retry).
|
|
228
|
+
# @option opts [Integer] :limit Page size. When limit or skip is present, the response includes total and skip (and echoes limit).
|
|
229
|
+
# @option opts [Integer] :skip Number of profiles to skip, applied after sorting and filtering.
|
|
220
230
|
# @return [ProfilesListResponse]
|
|
221
231
|
def list_profiles(opts = {})
|
|
222
232
|
data, _status_code, _headers = list_profiles_with_http_info(opts)
|
|
@@ -224,20 +234,38 @@ module Zernio
|
|
|
224
234
|
end
|
|
225
235
|
|
|
226
236
|
# List profiles
|
|
227
|
-
# Returns profiles sorted by creation date. Use includeOverLimit=true to include profiles that exceed the plan limit.
|
|
237
|
+
# Returns profiles sorted default-first, then by creation date. Filter with name (exact match) and paginate with limit/skip; without those params the full list is returned unchanged. Use includeOverLimit=true to include profiles that exceed the plan limit.
|
|
228
238
|
# @param [Hash] opts the optional parameters
|
|
229
239
|
# @option opts [Boolean] :include_over_limit When true, includes over-limit profiles (marked with isOverLimit: true). (default to false)
|
|
240
|
+
# @option opts [String] :name Exact-match filter on the profile name. Useful to recover a profile id after an ambiguous create (timeout followed by a 409 on retry).
|
|
241
|
+
# @option opts [Integer] :limit Page size. When limit or skip is present, the response includes total and skip (and echoes limit).
|
|
242
|
+
# @option opts [Integer] :skip Number of profiles to skip, applied after sorting and filtering.
|
|
230
243
|
# @return [Array<(ProfilesListResponse, Integer, Hash)>] ProfilesListResponse data, response status code and response headers
|
|
231
244
|
def list_profiles_with_http_info(opts = {})
|
|
232
245
|
if @api_client.config.debugging
|
|
233
246
|
@api_client.config.logger.debug 'Calling API: ProfilesApi.list_profiles ...'
|
|
234
247
|
end
|
|
248
|
+
if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 1000
|
|
249
|
+
fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling ProfilesApi.list_profiles, must be smaller than or equal to 1000.'
|
|
250
|
+
end
|
|
251
|
+
|
|
252
|
+
if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
|
|
253
|
+
fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling ProfilesApi.list_profiles, must be greater than or equal to 1.'
|
|
254
|
+
end
|
|
255
|
+
|
|
256
|
+
if @api_client.config.client_side_validation && !opts[:'skip'].nil? && opts[:'skip'] < 0
|
|
257
|
+
fail ArgumentError, 'invalid value for "opts[:"skip"]" when calling ProfilesApi.list_profiles, must be greater than or equal to 0.'
|
|
258
|
+
end
|
|
259
|
+
|
|
235
260
|
# resource path
|
|
236
261
|
local_var_path = '/v1/profiles'
|
|
237
262
|
|
|
238
263
|
# query parameters
|
|
239
264
|
query_params = opts[:query_params] || {}
|
|
240
265
|
query_params[:'includeOverLimit'] = opts[:'include_over_limit'] if !opts[:'include_over_limit'].nil?
|
|
266
|
+
query_params[:'name'] = opts[:'name'] if !opts[:'name'].nil?
|
|
267
|
+
query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
|
|
268
|
+
query_params[:'skip'] = opts[:'skip'] if !opts[:'skip'].nil?
|
|
241
269
|
|
|
242
270
|
# header parameters
|
|
243
271
|
header_params = opts[:header_params] || {}
|
|
@@ -17,10 +17,22 @@ module Zernio
|
|
|
17
17
|
class ProfilesListResponse < ApiModelBase
|
|
18
18
|
attr_accessor :profiles
|
|
19
19
|
|
|
20
|
+
# Total matching profiles across all pages. Present only when limit or skip was passed.
|
|
21
|
+
attr_accessor :total
|
|
22
|
+
|
|
23
|
+
# Offset applied. Present only when limit or skip was passed.
|
|
24
|
+
attr_accessor :skip
|
|
25
|
+
|
|
26
|
+
# Echo of the limit query param. Present only when it was passed.
|
|
27
|
+
attr_accessor :limit
|
|
28
|
+
|
|
20
29
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
21
30
|
def self.attribute_map
|
|
22
31
|
{
|
|
23
|
-
:'profiles' => :'profiles'
|
|
32
|
+
:'profiles' => :'profiles',
|
|
33
|
+
:'total' => :'total',
|
|
34
|
+
:'skip' => :'skip',
|
|
35
|
+
:'limit' => :'limit'
|
|
24
36
|
}
|
|
25
37
|
end
|
|
26
38
|
|
|
@@ -37,7 +49,10 @@ module Zernio
|
|
|
37
49
|
# Attribute type mapping.
|
|
38
50
|
def self.openapi_types
|
|
39
51
|
{
|
|
40
|
-
:'profiles' => :'Array<Profile>'
|
|
52
|
+
:'profiles' => :'Array<Profile>',
|
|
53
|
+
:'total' => :'Integer',
|
|
54
|
+
:'skip' => :'Integer',
|
|
55
|
+
:'limit' => :'Integer'
|
|
41
56
|
}
|
|
42
57
|
end
|
|
43
58
|
|
|
@@ -68,6 +83,18 @@ module Zernio
|
|
|
68
83
|
self.profiles = value
|
|
69
84
|
end
|
|
70
85
|
end
|
|
86
|
+
|
|
87
|
+
if attributes.key?(:'total')
|
|
88
|
+
self.total = attributes[:'total']
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
if attributes.key?(:'skip')
|
|
92
|
+
self.skip = attributes[:'skip']
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
if attributes.key?(:'limit')
|
|
96
|
+
self.limit = attributes[:'limit']
|
|
97
|
+
end
|
|
71
98
|
end
|
|
72
99
|
|
|
73
100
|
# Show invalid properties with the reasons. Usually used together with valid?
|
|
@@ -90,7 +117,10 @@ module Zernio
|
|
|
90
117
|
def ==(o)
|
|
91
118
|
return true if self.equal?(o)
|
|
92
119
|
self.class == o.class &&
|
|
93
|
-
profiles == o.profiles
|
|
120
|
+
profiles == o.profiles &&
|
|
121
|
+
total == o.total &&
|
|
122
|
+
skip == o.skip &&
|
|
123
|
+
limit == o.limit
|
|
94
124
|
end
|
|
95
125
|
|
|
96
126
|
# @see the `==` method
|
|
@@ -102,7 +132,7 @@ module Zernio
|
|
|
102
132
|
# Calculates hash code according to all attributes.
|
|
103
133
|
# @return [Integer] Hash code
|
|
104
134
|
def hash
|
|
105
|
-
[profiles].hash
|
|
135
|
+
[profiles, total, skip, limit].hash
|
|
106
136
|
end
|
|
107
137
|
|
|
108
138
|
# Builds the object from hash
|
data/lib/zernio-sdk/version.rb
CHANGED
data/openapi.yaml
CHANGED
|
@@ -6112,6 +6112,15 @@ components:
|
|
|
6112
6112
|
type: array
|
|
6113
6113
|
items:
|
|
6114
6114
|
$ref: '#/components/schemas/Profile'
|
|
6115
|
+
total:
|
|
6116
|
+
type: integer
|
|
6117
|
+
description: 'Total matching profiles across all pages. Present only when limit or skip was passed.'
|
|
6118
|
+
skip:
|
|
6119
|
+
type: integer
|
|
6120
|
+
description: 'Offset applied. Present only when limit or skip was passed.'
|
|
6121
|
+
limit:
|
|
6122
|
+
type: integer
|
|
6123
|
+
description: Echo of the limit query param. Present only when it was passed.
|
|
6115
6124
|
ProfileCreateResponse:
|
|
6116
6125
|
type: object
|
|
6117
6126
|
properties:
|
|
@@ -13287,7 +13296,11 @@ paths:
|
|
|
13287
13296
|
operationId: listProfiles
|
|
13288
13297
|
tags: [Profiles]
|
|
13289
13298
|
summary: List profiles
|
|
13290
|
-
description:
|
|
13299
|
+
description: >-
|
|
13300
|
+
Returns profiles sorted default-first, then by creation date. Filter
|
|
13301
|
+
with name (exact match) and paginate with limit/skip; without those
|
|
13302
|
+
params the full list is returned unchanged. Use includeOverLimit=true
|
|
13303
|
+
to include profiles that exceed the plan limit.
|
|
13291
13304
|
parameters:
|
|
13292
13305
|
- name: includeOverLimit
|
|
13293
13306
|
in: query
|
|
@@ -13296,6 +13309,21 @@ paths:
|
|
|
13296
13309
|
type: boolean
|
|
13297
13310
|
default: false
|
|
13298
13311
|
description: "When true, includes over-limit profiles (marked with isOverLimit: true)."
|
|
13312
|
+
- name: name
|
|
13313
|
+
in: query
|
|
13314
|
+
required: false
|
|
13315
|
+
schema: { type: string }
|
|
13316
|
+
description: 'Exact-match filter on the profile name. Useful to recover a profile id after an ambiguous create (timeout followed by a 409 on retry).'
|
|
13317
|
+
- name: limit
|
|
13318
|
+
in: query
|
|
13319
|
+
required: false
|
|
13320
|
+
schema: { type: integer, minimum: 1, maximum: 1000 }
|
|
13321
|
+
description: 'Page size. When limit or skip is present, the response includes total and skip (and echoes limit).'
|
|
13322
|
+
- name: skip
|
|
13323
|
+
in: query
|
|
13324
|
+
required: false
|
|
13325
|
+
schema: { type: integer, minimum: 0 }
|
|
13326
|
+
description: 'Number of profiles to skip, applied after sorting and filtering.'
|
|
13299
13327
|
responses:
|
|
13300
13328
|
'200':
|
|
13301
13329
|
description: Profiles
|
|
@@ -13311,12 +13339,29 @@ paths:
|
|
|
13311
13339
|
name: "Personal Brand"
|
|
13312
13340
|
color: "#ffeda0"
|
|
13313
13341
|
isDefault: true
|
|
13342
|
+
'400': { $ref: '#/components/responses/BadRequest' }
|
|
13314
13343
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
13315
13344
|
post:
|
|
13316
13345
|
operationId: createProfile
|
|
13317
13346
|
tags: [Profiles]
|
|
13318
13347
|
summary: Create profile
|
|
13319
|
-
description:
|
|
13348
|
+
description: >-
|
|
13349
|
+
Creates a new profile with a name, optional description, and color.
|
|
13350
|
+
Names are unique per workspace: a duplicate returns a 409 whose
|
|
13351
|
+
details.existingProfileId carries the id of the existing profile.
|
|
13352
|
+
Send an Idempotency-Key header to make retries safe: a retried create
|
|
13353
|
+
with the same key and body replays the original 201 (same _id)
|
|
13354
|
+
instead of conflicting.
|
|
13355
|
+
parameters:
|
|
13356
|
+
- name: Idempotency-Key
|
|
13357
|
+
in: header
|
|
13358
|
+
required: false
|
|
13359
|
+
schema: { type: string, maxLength: 255 }
|
|
13360
|
+
description: >-
|
|
13361
|
+
Optional client-generated unique key (e.g. a UUID) that makes
|
|
13362
|
+
create retries safe. Same key + same body replays the original
|
|
13363
|
+
response; same key + different body → 422; key still processing →
|
|
13364
|
+
409.
|
|
13320
13365
|
requestBody:
|
|
13321
13366
|
required: true
|
|
13322
13367
|
content:
|
|
@@ -13353,7 +13398,8 @@ paths:
|
|
|
13353
13398
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
13354
13399
|
'402': { $ref: '#/components/responses/PaymentRequired' }
|
|
13355
13400
|
'403': { description: Profile limit exceeded }
|
|
13356
|
-
'409': { description:
|
|
13401
|
+
'409': { description: 'A profile with this name already exists (code: profile_name_conflict); details.existingProfileId carries the id of the existing profile. Also returned while a request with the same Idempotency-Key is still processing.' }
|
|
13402
|
+
'422': { description: Idempotency-Key reused with a different body }
|
|
13357
13403
|
/v1/profiles/{profileId}:
|
|
13358
13404
|
get:
|
|
13359
13405
|
operationId: getProfile
|
|
@@ -33536,6 +33582,7 @@ paths:
|
|
|
33536
33582
|
type: array
|
|
33537
33583
|
items: { $ref: '#/components/schemas/AdCampaign' }
|
|
33538
33584
|
pagination: { $ref: '#/components/schemas/Pagination' }
|
|
33585
|
+
'400': { $ref: '#/components/responses/BadRequest' }
|
|
33539
33586
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
33540
33587
|
'403':
|
|
33541
33588
|
description: Ads access required. Legacy plans need the Ads add-on; included by default on usage-based plans.
|
|
@@ -34,9 +34,10 @@ describe 'ProfilesApi' do
|
|
|
34
34
|
|
|
35
35
|
# unit tests for create_profile
|
|
36
36
|
# Create profile
|
|
37
|
-
# Creates a new profile with a name, optional description, and color.
|
|
37
|
+
# Creates a new profile with a name, optional description, and color. Names are unique per workspace: a duplicate returns a 409 whose details.existingProfileId carries the id of the existing profile. Send an Idempotency-Key header to make retries safe: a retried create with the same key and body replays the original 201 (same _id) instead of conflicting.
|
|
38
38
|
# @param create_profile_request
|
|
39
39
|
# @param [Hash] opts the optional parameters
|
|
40
|
+
# @option opts [String] :idempotency_key Optional client-generated unique key (e.g. a UUID) that makes create retries safe. Same key + same body replays the original response; same key + different body → 422; key still processing → 409.
|
|
40
41
|
# @return [ProfileCreateResponse]
|
|
41
42
|
describe 'create_profile test' do
|
|
42
43
|
it 'should work' do
|
|
@@ -70,9 +71,12 @@ describe 'ProfilesApi' do
|
|
|
70
71
|
|
|
71
72
|
# unit tests for list_profiles
|
|
72
73
|
# List profiles
|
|
73
|
-
# Returns profiles sorted by creation date. Use includeOverLimit=true to include profiles that exceed the plan limit.
|
|
74
|
+
# Returns profiles sorted default-first, then by creation date. Filter with name (exact match) and paginate with limit/skip; without those params the full list is returned unchanged. Use includeOverLimit=true to include profiles that exceed the plan limit.
|
|
74
75
|
# @param [Hash] opts the optional parameters
|
|
75
76
|
# @option opts [Boolean] :include_over_limit When true, includes over-limit profiles (marked with isOverLimit: true).
|
|
77
|
+
# @option opts [String] :name Exact-match filter on the profile name. Useful to recover a profile id after an ambiguous create (timeout followed by a 409 on retry).
|
|
78
|
+
# @option opts [Integer] :limit Page size. When limit or skip is present, the response includes total and skip (and echoes limit).
|
|
79
|
+
# @option opts [Integer] :skip Number of profiles to skip, applied after sorting and filtering.
|
|
76
80
|
# @return [ProfilesListResponse]
|
|
77
81
|
describe 'list_profiles test' do
|
|
78
82
|
it 'should work' do
|
|
@@ -33,4 +33,22 @@ describe Zernio::ProfilesListResponse do
|
|
|
33
33
|
end
|
|
34
34
|
end
|
|
35
35
|
|
|
36
|
+
describe 'test attribute "total"' do
|
|
37
|
+
it 'should work' do
|
|
38
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe 'test attribute "skip"' do
|
|
43
|
+
it 'should work' do
|
|
44
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
describe 'test attribute "limit"' do
|
|
49
|
+
it 'should work' do
|
|
50
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
36
54
|
end
|