-
Notifications
You must be signed in to change notification settings - Fork 0
/
associate-role.ts
362 lines (360 loc) · 9.97 KB
/
associate-role.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
/**
* Code generated by [commercetools RMF-Codegen](https://github.com/commercetools/rmf-codegen). DO NOT EDIT.
* Please don't change this file manually but run `rmf-codegen generate raml_file_path -o output_path -t typescript_client` to update it.
* For more information about the commercetools platform APIs, visit https://docs.commercetools.com/.
*/
import { BaseResource, CreatedBy, LastModifiedBy } from './common.js'
import { CustomFields, CustomFieldsDraft, FieldContainer, TypeResourceIdentifier } from './type.js'
export interface AssociateRole extends BaseResource {
/**
* Unique identifier of the AssociateRole.
*
*
*/
readonly id: string
/**
* Current version of the AssociateRole.
*
*
*/
readonly version: number
/**
* Date and time (UTC) the AssociateRole was initially created.
*
*
*/
readonly createdAt: string
/**
* Date and time (UTC) the AssociateRole was last updated.
*
*
*/
readonly lastModifiedAt: string
/**
* Present on resources updated after 1 February 2019 except for [events not tracked](/../api/client-logging#events-tracked).
*
*
*/
readonly lastModifiedBy?: LastModifiedBy
/**
* Present on resources created after 1 February 2019 except for [events not tracked](/../api/client-logging#events-tracked).
*
*
*/
readonly createdBy?: CreatedBy
/**
* User-defined unique identifier of the AssociateRole.
*
*
*/
readonly key: string
/**
* Whether the AssociateRole can be assigned to an Associate by a [buyer](/../api/associates-overview#buyer). If false, the AssociateRole can only be assigned using the [general endpoint](/../api/associates-overview#through-the-general-endpoints).
*
*
*/
readonly buyerAssignable: boolean
/**
* Name of the AssociateRole.
*
*
*/
readonly name?: string
/**
* List of Permissions for the AssociateRole.
*
*
*/
readonly permissions: Permission[]
/**
* Custom Fields for the AssociateRole.
*
*
*/
readonly custom?: CustomFields
}
export interface AssociateRoleDraft {
/**
* User-defined unique identifier for the AssociateRole.
*
*
*/
readonly key: string
/**
* Name of the AssociateRole.
*
*
*/
readonly name?: string
/**
* Whether the AssociateRole can be assigned to an Associate by a [buyer](/../api/associates-overview#buyer).
*
*
*/
readonly buyerAssignable?: boolean
/**
* List of Permissions for the AssociateRole.
*
*
*/
readonly permissions?: Permission[]
/**
* Custom Fields for the AssociateRole.
*
*
*/
readonly custom?: CustomFieldsDraft
}
/**
* [Reference](ctp:api:type:TypeReference) to an [AssociateRole](ctp:api:type:AssociateRole) by its key.
*
*/
export interface AssociateRoleKeyReference {
readonly typeId: 'associate-role'
/**
* Unique and immutable key of the referenced [AssociateRole](ctp:api:type:AssociateRole).
*
*
*/
readonly key: string
}
/**
* [PagedQueryResult](/../api/general-concepts#pagedqueryresult) with results containing an array of [AssociateRole](ctp:api:type:AssociateRole).
*
*/
export interface AssociateRolePagedQueryResponse {
/**
* Number of requested [results](/../api/general-concepts#limit).
*
*
*/
readonly limit: number
/**
* Number of elements [skipped](/../api/general-concepts#offset).
*
*
*/
readonly offset: number
/**
* Actual number of results returned.
*
*
*/
readonly count: number
/**
* Total number of results matching the query.
* This number is an estimation that is not [strongly consistent](/../api/general-concepts#strong-consistency).
* This field is returned by default.
* For improved performance, calculating this field can be deactivated by using the query parameter `withTotal=false`.
* When the results are filtered with a [Query Predicate](/../api/predicates/query), `total` is subject to a [limit](/../api/limits#queries).
*
*
*/
readonly total?: number
/**
* [AssociateRoles](ctp:api:type:AssociateRole) matching the query.
*
*
*/
readonly results: AssociateRole[]
}
/**
* [Reference](ctp:api:type:TypeReference) to an [AssociateRole](ctp:api:type:AssociateRole).
*
*/
export interface AssociateRoleReference {
readonly typeId: 'associate-role'
/**
* Unique identifier of the referenced [AssociateRole](ctp:api:type:AssociateRole).
*
*
*/
readonly id: string
/**
* Contains the representation of the expanded AssociateRole. Only present in responses to requests with [Reference Expansion](/../api/general-concepts#reference-expansion) for AssociateRole.
*
*
*/
readonly obj?: AssociateRole
}
/**
* [ResourceIdentifier](ctp:api:type:TypeResourceIdentifier) of an [AssociateRole](ctp:api:type:AssociateRole).
*
*/
export interface AssociateRoleResourceIdentifier {
readonly typeId: 'associate-role'
/**
* Unique identifier of the referenced [AssociateRole](ctp:api:type:AssociateRole). Either `id` or `key` is required.
*
*
*/
readonly id?: string
/**
* Unique key of the referenced [AssociateRole](ctp:api:type:AssociateRole). Either `id` or `key` is required.
*
*
*/
readonly key?: string
}
export interface AssociateRoleUpdate {
/**
* Expected version of the AssociateRole on which the changes should be applied.
* If the expected version does not match the actual version, a [409 Conflict](/../api/errors#409-conflict) error will be returned.
*
*
*/
readonly version: number
/**
* Update actions to be performed on the AssociateRole.
*
*
*/
readonly actions: AssociateRoleUpdateAction[]
}
export type AssociateRoleUpdateAction =
| AssociateRoleAddPermissionAction
| AssociateRoleChangeBuyerAssignableAction
| AssociateRoleRemovePermissionAction
| AssociateRoleSetCustomFieldAction
| AssociateRoleSetCustomTypeAction
| AssociateRoleSetNameAction
| AssociateRoleSetPermissionsAction
/**
* Permissions grant granular access to [Business Units](ctp:api:type:BusinessUnit), [Carts](ctp:api:type:Cart), [Orders](ctp:api:type:Order), [Quotes](ctp:api:type:Quote), and [QuoteRequests](ctp:api:type:QuoteRequest).
*
*/
export type Permission =
| 'AcceptMyQuotes'
| 'AcceptOthersQuotes'
| 'AddChildUnits'
| 'CreateMyCarts'
| 'CreateMyOrdersFromMyCarts'
| 'CreateMyOrdersFromMyQuotes'
| 'CreateMyQuoteRequestsFromMyCarts'
| 'CreateOrdersFromOthersCarts'
| 'CreateOrdersFromOthersQuotes'
| 'CreateOthersCarts'
| 'CreateQuoteRequestsFromOthersCarts'
| 'DeclineMyQuotes'
| 'DeclineOthersQuotes'
| 'DeleteMyCarts'
| 'DeleteOthersCarts'
| 'RenegotiateMyQuotes'
| 'RenegotiateOthersQuotes'
| 'UpdateAssociates'
| 'UpdateBusinessUnitDetails'
| 'UpdateMyCarts'
| 'UpdateMyOrders'
| 'UpdateMyQuoteRequests'
| 'UpdateOthersCarts'
| 'UpdateOthersOrders'
| 'UpdateOthersQuoteRequests'
| 'UpdateParentUnit'
| 'ViewMyCarts'
| 'ViewMyOrders'
| 'ViewMyQuoteRequests'
| 'ViewMyQuotes'
| 'ViewOthersCarts'
| 'ViewOthersOrders'
| 'ViewOthersQuoteRequests'
| 'ViewOthersQuotes'
| string
/**
* Adding a Permission to an [AssociateRole](ctp:api:type:AssociateRole) generates an [AssociateRolePermissionAdded](ctp:api:type:AssociateRolePermissionAddedMessage) Message.
*
*/
export interface AssociateRoleAddPermissionAction {
readonly action: 'addPermission'
/**
* Permission to be added to the AssociateRole.
*
*
*/
readonly permission: Permission
}
/**
* Changing the `buyerAssignable` value of an AssociateRole generates an [AssociateRoleBuyerAssignableChanged](ctp:api:type:AssociateRoleBuyerAssignableChangedMessage) Message.
*
*/
export interface AssociateRoleChangeBuyerAssignableAction {
readonly action: 'changeBuyerAssignable'
/**
* The new value of the `buyerAssignable` field of the AssociateRole.
*
*
*/
readonly buyerAssignable: boolean
}
/**
* Removing a Permission from an [AssociateRole](ctp:api:type:AssociateRole) generates an [AssociateRolePermissionRemoved](ctp:api:type:AssociateRolePermissionRemovedMessage) Message.
*
*/
export interface AssociateRoleRemovePermissionAction {
readonly action: 'removePermission'
/**
* Permission to be removed from the AssociateRole.
*
*
*/
readonly permission: Permission
}
export interface AssociateRoleSetCustomFieldAction {
readonly action: 'setCustomField'
/**
* Name of the [Custom Field](ctp:api:type:CustomFields).
*
*
*/
readonly name: string
/**
* If `value` is absent or `null`, this field will be removed if it exists.
* Trying to remove a field that does not exist will fail with an [InvalidOperationError](ctp:api:type:InvalidOperationError) error.
* If `value` is provided, it is set for the field defined by `name`.
*
*
*/
readonly value?: any
}
export interface AssociateRoleSetCustomTypeAction {
readonly action: 'setCustomType'
/**
* Defines the [Type](ctp:api:type:Type) that extends the AssociateRole with [Custom Fields](ctp:api:type:CustomFields).
* If absent, any existing Type and Custom Fields are removed from the AssociateRole.
*
*
*/
readonly type?: TypeResourceIdentifier
/**
* Sets the [Custom Fields](ctp:api:type:CustomFields) for the AssociateRole.
*
*
*/
readonly fields?: FieldContainer
}
/**
* Updating the name of an [AssociateRole](ctp:api:type:AssociateRole) generates an [AssociateRoleNameSet](ctp:api:type:AssociateRoleNameSetMessage) Message.
*
*/
export interface AssociateRoleSetNameAction {
readonly action: 'setName'
/**
* New name to set.
* If `name` is absent or `null`, the existing name, if any, will be removed.
*
*
*/
readonly name?: string
}
/**
* Updating the Permissions on an [AssociateRole](ctp:api:type:AssociateRole) generates an [AssociateRolePermissionsSet](ctp:api:type:AssociateRolePermissionsSetMessage) Message.
*
*/
export interface AssociateRoleSetPermissionsAction {
readonly action: 'setPermissions'
/**
* Overrides the current list of Permissions for the AssociateRole.
*
*
*/
readonly permissions?: Permission[]
}