@azure/container-registry 1.0.0-beta.3 → 1.0.0

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.
Files changed (72) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +70 -37
  3. package/dist/index.js +1255 -1123
  4. package/dist/index.js.map +1 -1
  5. package/dist-esm/src/containerRegistryChallengeHandler.js +35 -38
  6. package/dist-esm/src/containerRegistryChallengeHandler.js.map +1 -1
  7. package/dist-esm/src/containerRegistryClient.js +69 -50
  8. package/dist-esm/src/containerRegistryClient.js.map +1 -1
  9. package/dist-esm/src/containerRegistryTokenCredential.js +39 -126
  10. package/dist-esm/src/containerRegistryTokenCredential.js.map +1 -1
  11. package/dist-esm/src/containerRepository.js +100 -63
  12. package/dist-esm/src/containerRepository.js.map +1 -1
  13. package/dist-esm/src/generated/generatedClient.js +7 -6
  14. package/dist-esm/src/generated/generatedClient.js.map +1 -1
  15. package/dist-esm/src/generated/generatedClientContext.js +13 -2
  16. package/dist-esm/src/generated/generatedClientContext.js.map +1 -1
  17. package/dist-esm/src/generated/index.js +1 -0
  18. package/dist-esm/src/generated/index.js.map +1 -1
  19. package/dist-esm/src/generated/models/index.js +61 -1
  20. package/dist-esm/src/generated/models/index.js.map +1 -1
  21. package/dist-esm/src/generated/models/mappers.js +514 -557
  22. package/dist-esm/src/generated/models/mappers.js.map +1 -1
  23. package/dist-esm/src/generated/models/parameters.js +87 -7
  24. package/dist-esm/src/generated/models/parameters.js.map +1 -1
  25. package/dist-esm/src/generated/operations/authentication.js +28 -8
  26. package/dist-esm/src/generated/operations/authentication.js.map +1 -1
  27. package/dist-esm/src/generated/operations/containerRegistry.js +27 -7
  28. package/dist-esm/src/generated/operations/containerRegistry.js.map +1 -1
  29. package/dist-esm/src/generated/operations/containerRegistryBlob.js +2 -2
  30. package/dist-esm/src/generated/operations/containerRegistryBlob.js.map +1 -1
  31. package/dist-esm/src/generated/operationsInterfaces/authentication.js +9 -0
  32. package/dist-esm/src/generated/operationsInterfaces/authentication.js.map +1 -0
  33. package/dist-esm/src/generated/operationsInterfaces/containerRegistry.js +9 -0
  34. package/dist-esm/src/generated/operationsInterfaces/containerRegistry.js.map +1 -0
  35. package/dist-esm/src/generated/operationsInterfaces/containerRegistryBlob.js +9 -0
  36. package/dist-esm/src/generated/operationsInterfaces/containerRegistryBlob.js.map +1 -0
  37. package/dist-esm/src/generated/operationsInterfaces/index.js +11 -0
  38. package/dist-esm/src/generated/operationsInterfaces/index.js.map +1 -0
  39. package/dist-esm/src/index.js.map +1 -1
  40. package/dist-esm/src/models.js +43 -2
  41. package/dist-esm/src/models.js.map +1 -1
  42. package/dist-esm/src/registryArtifact.js +176 -135
  43. package/dist-esm/src/registryArtifact.js.map +1 -1
  44. package/dist-esm/src/tracing.js +1 -1
  45. package/dist-esm/src/tracing.js.map +1 -1
  46. package/dist-esm/src/transformations.js +2 -2
  47. package/dist-esm/src/transformations.js.map +1 -1
  48. package/dist-esm/src/{base64.browser.js → utils/base64.browser.js} +0 -0
  49. package/dist-esm/src/utils/base64.browser.js.map +1 -0
  50. package/dist-esm/src/{base64.js → utils/base64.js} +0 -0
  51. package/dist-esm/src/utils/base64.js.map +1 -0
  52. package/dist-esm/src/{utils.js → utils/helpers.js} +1 -1
  53. package/dist-esm/src/utils/helpers.js.map +1 -0
  54. package/dist-esm/src/{tokenCycler.js → utils/tokenCycler.js} +29 -34
  55. package/dist-esm/src/utils/tokenCycler.js.map +1 -0
  56. package/dist-esm/src/{url.browser.js → utils/url.browser.js} +0 -0
  57. package/dist-esm/src/utils/url.browser.js.map +1 -0
  58. package/dist-esm/src/{url.js → utils/url.js} +0 -0
  59. package/dist-esm/src/utils/url.js.map +1 -0
  60. package/dist-esm/src/{wwwAuthenticateParser.js → utils/wwwAuthenticateParser.js} +0 -0
  61. package/dist-esm/src/utils/wwwAuthenticateParser.js.map +1 -0
  62. package/package.json +22 -25
  63. package/types/container-registry.d.ts +258 -83
  64. package/dist-esm/src/base64.browser.js.map +0 -1
  65. package/dist-esm/src/base64.js.map +0 -1
  66. package/dist-esm/src/constants.js +0 -4
  67. package/dist-esm/src/constants.js.map +0 -1
  68. package/dist-esm/src/tokenCycler.js.map +0 -1
  69. package/dist-esm/src/url.browser.js.map +0 -1
  70. package/dist-esm/src/url.js.map +0 -1
  71. package/dist-esm/src/utils.js.map +0 -1
  72. package/dist-esm/src/wwwAuthenticateParser.js.map +0 -1
package/dist/index.js CHANGED
@@ -11,10 +11,6 @@ var logger$1 = require('@azure/logger');
11
11
  var coreClient = require('@azure/core-client');
12
12
  var url$1 = require('url');
13
13
 
14
- // Copyright (c) Microsoft Corporation.
15
- // Licensed under the MIT license.
16
- const SDK_VERSION = "1.0.0-beta.3";
17
-
18
14
  // Copyright (c) Microsoft Corporation.
19
15
  /**
20
16
  * The \@azure/logger configuration for this package.
@@ -70,7 +66,8 @@ const AcrErrorInfo = {
70
66
  detail: {
71
67
  serializedName: "detail",
72
68
  type: {
73
- name: "any"
69
+ name: "Dictionary",
70
+ value: { type: { name: "any" } }
74
71
  }
75
72
  }
76
73
  }
@@ -90,397 +87,344 @@ const Manifest = {
90
87
  }
91
88
  }
92
89
  };
93
- const Repositories = {
90
+ const ManifestListAttributes = {
94
91
  type: {
95
92
  name: "Composite",
96
- className: "Repositories",
93
+ className: "ManifestListAttributes",
97
94
  modelProperties: {
98
- repositories: {
99
- serializedName: "repositories",
95
+ mediaType: {
96
+ serializedName: "mediaType",
100
97
  type: {
101
- name: "Sequence",
102
- element: {
103
- type: {
104
- name: "String"
105
- }
106
- }
98
+ name: "String"
107
99
  }
108
100
  },
109
- link: {
110
- serializedName: "link",
101
+ size: {
102
+ serializedName: "size",
103
+ type: {
104
+ name: "Number"
105
+ }
106
+ },
107
+ digest: {
108
+ serializedName: "digest",
111
109
  type: {
112
110
  name: "String"
113
111
  }
112
+ },
113
+ platform: {
114
+ serializedName: "platform",
115
+ type: {
116
+ name: "Composite",
117
+ className: "Platform"
118
+ }
114
119
  }
115
120
  }
116
121
  }
117
122
  };
118
- const ContainerRepositoryProperties = {
123
+ const Platform = {
119
124
  type: {
120
125
  name: "Composite",
121
- className: "ContainerRepositoryProperties",
126
+ className: "Platform",
122
127
  modelProperties: {
123
- registryLoginServer: {
124
- serializedName: "registry",
125
- required: true,
126
- readOnly: true,
128
+ architecture: {
129
+ serializedName: "architecture",
127
130
  type: {
128
131
  name: "String"
129
132
  }
130
133
  },
131
- name: {
132
- serializedName: "imageName",
133
- required: true,
134
- readOnly: true,
134
+ os: {
135
+ serializedName: "os",
135
136
  type: {
136
137
  name: "String"
137
138
  }
138
139
  },
139
- createdOn: {
140
- serializedName: "createdTime",
141
- required: true,
142
- readOnly: true,
143
- type: {
144
- name: "DateTime"
145
- }
146
- },
147
- lastUpdatedOn: {
148
- serializedName: "lastUpdateTime",
149
- required: true,
150
- readOnly: true,
151
- type: {
152
- name: "DateTime"
153
- }
154
- },
155
- manifestCount: {
156
- serializedName: "manifestCount",
157
- required: true,
158
- readOnly: true,
159
- type: {
160
- name: "Number"
161
- }
162
- },
163
- tagCount: {
164
- serializedName: "tagCount",
165
- required: true,
166
- readOnly: true,
167
- type: {
168
- name: "Number"
169
- }
170
- },
171
- canDelete: {
172
- serializedName: "changeableAttributes.deleteEnabled",
173
- type: {
174
- name: "Boolean"
175
- }
176
- },
177
- canWrite: {
178
- serializedName: "changeableAttributes.writeEnabled",
140
+ osVersion: {
141
+ serializedName: "os\\.version",
179
142
  type: {
180
- name: "Boolean"
143
+ name: "String"
181
144
  }
182
145
  },
183
- canList: {
184
- serializedName: "changeableAttributes.listEnabled",
146
+ osFeatures: {
147
+ serializedName: "os\\.features",
185
148
  type: {
186
- name: "Boolean"
149
+ name: "Sequence",
150
+ element: {
151
+ type: {
152
+ name: "String"
153
+ }
154
+ }
187
155
  }
188
156
  },
189
- canRead: {
190
- serializedName: "changeableAttributes.readEnabled",
157
+ variant: {
158
+ serializedName: "variant",
191
159
  type: {
192
- name: "Boolean"
160
+ name: "String"
193
161
  }
194
162
  },
195
- teleportEnabled: {
196
- serializedName: "changeableAttributes.teleportEnabled",
163
+ features: {
164
+ serializedName: "features",
197
165
  type: {
198
- name: "Boolean"
166
+ name: "Sequence",
167
+ element: {
168
+ type: {
169
+ name: "String"
170
+ }
171
+ }
199
172
  }
200
173
  }
201
174
  }
202
175
  }
203
176
  };
204
- const RepositoryWriteableProperties = {
177
+ const Descriptor = {
205
178
  type: {
206
179
  name: "Composite",
207
- className: "RepositoryWriteableProperties",
180
+ className: "Descriptor",
208
181
  modelProperties: {
209
- canDelete: {
210
- serializedName: "deleteEnabled",
182
+ mediaType: {
183
+ serializedName: "mediaType",
211
184
  type: {
212
- name: "Boolean"
185
+ name: "String"
213
186
  }
214
187
  },
215
- canWrite: {
216
- serializedName: "writeEnabled",
188
+ size: {
189
+ serializedName: "size",
217
190
  type: {
218
- name: "Boolean"
191
+ name: "Number"
219
192
  }
220
193
  },
221
- canList: {
222
- serializedName: "listEnabled",
194
+ digest: {
195
+ serializedName: "digest",
223
196
  type: {
224
- name: "Boolean"
197
+ name: "String"
225
198
  }
226
199
  },
227
- canRead: {
228
- serializedName: "readEnabled",
200
+ urls: {
201
+ serializedName: "urls",
229
202
  type: {
230
- name: "Boolean"
203
+ name: "Sequence",
204
+ element: {
205
+ type: {
206
+ name: "String"
207
+ }
208
+ }
231
209
  }
232
210
  },
233
- teleportEnabled: {
234
- serializedName: "teleportEnabled",
211
+ annotations: {
212
+ serializedName: "annotations",
235
213
  type: {
236
- name: "Boolean"
214
+ name: "Composite",
215
+ className: "Annotations"
237
216
  }
238
217
  }
239
218
  }
240
219
  }
241
220
  };
242
- const TagList = {
221
+ const Annotations = {
243
222
  type: {
244
223
  name: "Composite",
245
- className: "TagList",
224
+ className: "Annotations",
225
+ additionalProperties: { type: { name: "Object" } },
246
226
  modelProperties: {
247
- registryLoginServer: {
248
- serializedName: "registry",
249
- required: true,
227
+ created: {
228
+ serializedName: "org\\.opencontainers.image.created",
250
229
  type: {
251
- name: "String"
230
+ name: "DateTime"
252
231
  }
253
232
  },
254
- repository: {
255
- serializedName: "imageName",
256
- required: true,
233
+ authors: {
234
+ serializedName: "org\\.opencontainers.image.authors",
257
235
  type: {
258
236
  name: "String"
259
237
  }
260
238
  },
261
- tagAttributeBases: {
262
- serializedName: "tags",
263
- required: true,
239
+ url: {
240
+ serializedName: "org\\.opencontainers.image.url",
264
241
  type: {
265
- name: "Sequence",
266
- element: {
267
- type: {
268
- name: "Composite",
269
- className: "TagAttributesBase"
270
- }
271
- }
242
+ name: "String"
272
243
  }
273
244
  },
274
- link: {
275
- serializedName: "link",
245
+ documentation: {
246
+ serializedName: "org\\.opencontainers.image.documentation",
276
247
  type: {
277
248
  name: "String"
278
249
  }
279
- }
280
- }
281
- }
282
- };
283
- const TagAttributesBase = {
284
- type: {
285
- name: "Composite",
286
- className: "TagAttributesBase",
287
- modelProperties: {
288
- name: {
289
- serializedName: "name",
290
- required: true,
291
- readOnly: true,
250
+ },
251
+ source: {
252
+ serializedName: "org\\.opencontainers.image.source",
292
253
  type: {
293
254
  name: "String"
294
255
  }
295
256
  },
296
- digest: {
297
- serializedName: "digest",
298
- required: true,
299
- readOnly: true,
257
+ version: {
258
+ serializedName: "org\\.opencontainers.image.version",
300
259
  type: {
301
260
  name: "String"
302
261
  }
303
262
  },
304
- createdOn: {
305
- serializedName: "createdTime",
306
- required: true,
307
- readOnly: true,
263
+ revision: {
264
+ serializedName: "org\\.opencontainers.image.revision",
308
265
  type: {
309
- name: "DateTime"
266
+ name: "String"
310
267
  }
311
268
  },
312
- lastUpdatedOn: {
313
- serializedName: "lastUpdateTime",
314
- required: true,
315
- readOnly: true,
269
+ vendor: {
270
+ serializedName: "org\\.opencontainers.image.vendor",
316
271
  type: {
317
- name: "DateTime"
272
+ name: "String"
318
273
  }
319
274
  },
320
- canDelete: {
321
- serializedName: "changeableAttributes.deleteEnabled",
275
+ licenses: {
276
+ serializedName: "org\\.opencontainers.image.licenses",
322
277
  type: {
323
- name: "Boolean"
278
+ name: "String"
324
279
  }
325
280
  },
326
- canWrite: {
327
- serializedName: "changeableAttributes.writeEnabled",
281
+ name: {
282
+ serializedName: "org\\.opencontainers.image.ref.name",
328
283
  type: {
329
- name: "Boolean"
284
+ name: "String"
330
285
  }
331
286
  },
332
- canList: {
333
- serializedName: "changeableAttributes.listEnabled",
287
+ title: {
288
+ serializedName: "org\\.opencontainers.image.title",
334
289
  type: {
335
- name: "Boolean"
290
+ name: "String"
336
291
  }
337
292
  },
338
- canRead: {
339
- serializedName: "changeableAttributes.readEnabled",
293
+ description: {
294
+ serializedName: "org\\.opencontainers.image.description",
340
295
  type: {
341
- name: "Boolean"
296
+ name: "String"
342
297
  }
343
298
  }
344
299
  }
345
300
  }
346
301
  };
347
- const TagWriteableProperties = {
302
+ const FsLayer = {
348
303
  type: {
349
304
  name: "Composite",
350
- className: "TagWriteableProperties",
305
+ className: "FsLayer",
351
306
  modelProperties: {
352
- canDelete: {
353
- serializedName: "deleteEnabled",
354
- type: {
355
- name: "Boolean"
356
- }
357
- },
358
- canWrite: {
359
- serializedName: "writeEnabled",
360
- type: {
361
- name: "Boolean"
362
- }
363
- },
364
- canList: {
365
- serializedName: "listEnabled",
307
+ blobSum: {
308
+ serializedName: "blobSum",
366
309
  type: {
367
- name: "Boolean"
310
+ name: "String"
368
311
  }
369
- },
370
- canRead: {
371
- serializedName: "readEnabled",
312
+ }
313
+ }
314
+ }
315
+ };
316
+ const History = {
317
+ type: {
318
+ name: "Composite",
319
+ className: "History",
320
+ modelProperties: {
321
+ v1Compatibility: {
322
+ serializedName: "v1Compatibility",
372
323
  type: {
373
- name: "Boolean"
324
+ name: "String"
374
325
  }
375
326
  }
376
327
  }
377
328
  }
378
329
  };
379
- const ArtifactTagProperties = {
330
+ const ImageSignature = {
380
331
  type: {
381
332
  name: "Composite",
382
- className: "ArtifactTagProperties",
333
+ className: "ImageSignature",
383
334
  modelProperties: {
384
- registryLoginServer: {
385
- serializedName: "registry",
386
- required: true,
387
- readOnly: true,
335
+ header: {
336
+ serializedName: "header",
388
337
  type: {
389
- name: "String"
338
+ name: "Composite",
339
+ className: "Jwk"
390
340
  }
391
341
  },
392
- repositoryName: {
393
- serializedName: "imageName",
394
- required: true,
395
- readOnly: true,
342
+ signature: {
343
+ serializedName: "signature",
396
344
  type: {
397
345
  name: "String"
398
346
  }
399
347
  },
400
- name: {
401
- serializedName: "tag.name",
402
- required: true,
403
- readOnly: true,
348
+ protected: {
349
+ serializedName: "protected",
404
350
  type: {
405
351
  name: "String"
406
352
  }
407
- },
408
- digest: {
409
- serializedName: "tag.digest",
410
- required: true,
411
- readOnly: true,
353
+ }
354
+ }
355
+ }
356
+ };
357
+ const Jwk = {
358
+ type: {
359
+ name: "Composite",
360
+ className: "Jwk",
361
+ modelProperties: {
362
+ jwk: {
363
+ serializedName: "jwk",
412
364
  type: {
413
- name: "String"
365
+ name: "Composite",
366
+ className: "JWKHeader"
414
367
  }
415
368
  },
416
- createdOn: {
417
- serializedName: "tag.createdTime",
418
- required: true,
419
- readOnly: true,
369
+ alg: {
370
+ serializedName: "alg",
420
371
  type: {
421
- name: "DateTime"
372
+ name: "String"
422
373
  }
423
- },
424
- lastUpdatedOn: {
425
- serializedName: "tag.lastUpdateTime",
426
- required: true,
427
- readOnly: true,
374
+ }
375
+ }
376
+ }
377
+ };
378
+ const JWKHeader = {
379
+ type: {
380
+ name: "Composite",
381
+ className: "JWKHeader",
382
+ modelProperties: {
383
+ crv: {
384
+ serializedName: "crv",
428
385
  type: {
429
- name: "DateTime"
386
+ name: "String"
430
387
  }
431
388
  },
432
- canDelete: {
433
- serializedName: "tag.changeableAttributes.deleteEnabled",
389
+ kid: {
390
+ serializedName: "kid",
434
391
  type: {
435
- name: "Boolean"
392
+ name: "String"
436
393
  }
437
394
  },
438
- canWrite: {
439
- serializedName: "tag.changeableAttributes.writeEnabled",
395
+ kty: {
396
+ serializedName: "kty",
440
397
  type: {
441
- name: "Boolean"
398
+ name: "String"
442
399
  }
443
400
  },
444
- canList: {
445
- serializedName: "tag.changeableAttributes.listEnabled",
401
+ x: {
402
+ serializedName: "x",
446
403
  type: {
447
- name: "Boolean"
404
+ name: "String"
448
405
  }
449
406
  },
450
- canRead: {
451
- serializedName: "tag.changeableAttributes.readEnabled",
407
+ y: {
408
+ serializedName: "y",
452
409
  type: {
453
- name: "Boolean"
410
+ name: "String"
454
411
  }
455
412
  }
456
413
  }
457
414
  }
458
415
  };
459
- const AcrManifests = {
416
+ const Repositories = {
460
417
  type: {
461
418
  name: "Composite",
462
- className: "AcrManifests",
419
+ className: "Repositories",
463
420
  modelProperties: {
464
- registryLoginServer: {
465
- serializedName: "registry",
466
- type: {
467
- name: "String"
468
- }
469
- },
470
- repository: {
471
- serializedName: "imageName",
472
- type: {
473
- name: "String"
474
- }
475
- },
476
- manifests: {
477
- serializedName: "manifests",
421
+ repositories: {
422
+ serializedName: "repositories",
478
423
  type: {
479
424
  name: "Sequence",
480
425
  element: {
481
426
  type: {
482
- name: "Composite",
483
- className: "ManifestAttributesBase"
427
+ name: "String"
484
428
  }
485
429
  }
486
430
  }
@@ -494,24 +438,25 @@ const AcrManifests = {
494
438
  }
495
439
  }
496
440
  };
497
- const ManifestAttributesBase = {
441
+ const ContainerRepositoryProperties = {
498
442
  type: {
499
443
  name: "Composite",
500
- className: "ManifestAttributesBase",
444
+ className: "ContainerRepositoryProperties",
501
445
  modelProperties: {
502
- digest: {
503
- serializedName: "digest",
446
+ registryLoginServer: {
447
+ serializedName: "registry",
504
448
  required: true,
505
449
  readOnly: true,
506
450
  type: {
507
451
  name: "String"
508
452
  }
509
453
  },
510
- size: {
511
- serializedName: "imageSize",
454
+ name: {
455
+ serializedName: "imageName",
456
+ required: true,
512
457
  readOnly: true,
513
458
  type: {
514
- name: "Number"
459
+ name: "String"
515
460
  }
516
461
  },
517
462
  createdOn: {
@@ -530,45 +475,20 @@ const ManifestAttributesBase = {
530
475
  name: "DateTime"
531
476
  }
532
477
  },
533
- architecture: {
534
- serializedName: "architecture",
535
- readOnly: true,
536
- nullable: true,
537
- type: {
538
- name: "String"
539
- }
540
- },
541
- operatingSystem: {
542
- serializedName: "os",
543
- readOnly: true,
544
- nullable: true,
545
- type: {
546
- name: "String"
547
- }
548
- },
549
- relatedArtifacts: {
550
- serializedName: "references",
478
+ manifestCount: {
479
+ serializedName: "manifestCount",
480
+ required: true,
551
481
  readOnly: true,
552
482
  type: {
553
- name: "Sequence",
554
- element: {
555
- type: {
556
- name: "Composite",
557
- className: "ArtifactManifestPlatform"
558
- }
559
- }
483
+ name: "Number"
560
484
  }
561
485
  },
562
- tags: {
563
- serializedName: "tags",
486
+ tagCount: {
487
+ serializedName: "tagCount",
488
+ required: true,
564
489
  readOnly: true,
565
490
  type: {
566
- name: "Sequence",
567
- element: {
568
- type: {
569
- name: "String"
570
- }
571
- }
491
+ name: "Number"
572
492
  }
573
493
  },
574
494
  canDelete: {
@@ -594,56 +514,14 @@ const ManifestAttributesBase = {
594
514
  type: {
595
515
  name: "Boolean"
596
516
  }
597
- },
598
- quarantineState: {
599
- serializedName: "changeableAttributes.quarantineState",
600
- type: {
601
- name: "String"
602
- }
603
- },
604
- quarantineDetails: {
605
- serializedName: "changeableAttributes.quarantineDetails",
606
- type: {
607
- name: "String"
608
- }
609
- }
610
- }
611
- }
612
- };
613
- const ArtifactManifestPlatform = {
614
- type: {
615
- name: "Composite",
616
- className: "ArtifactManifestPlatform",
617
- modelProperties: {
618
- digest: {
619
- serializedName: "digest",
620
- required: true,
621
- readOnly: true,
622
- type: {
623
- name: "String"
624
- }
625
- },
626
- architecture: {
627
- serializedName: "architecture",
628
- readOnly: true,
629
- type: {
630
- name: "String"
631
- }
632
- },
633
- operatingSystem: {
634
- serializedName: "os",
635
- readOnly: true,
636
- type: {
637
- name: "String"
638
- }
639
517
  }
640
518
  }
641
519
  }
642
520
  };
643
- const ManifestWriteableProperties = {
521
+ const RepositoryWriteableProperties = {
644
522
  type: {
645
523
  name: "Composite",
646
- className: "ManifestWriteableProperties",
524
+ className: "RepositoryWriteableProperties",
647
525
  modelProperties: {
648
526
  canDelete: {
649
527
  serializedName: "deleteEnabled",
@@ -668,58 +546,74 @@ const ManifestWriteableProperties = {
668
546
  type: {
669
547
  name: "Boolean"
670
548
  }
671
- },
672
- quarantineState: {
673
- serializedName: "quarantineState",
674
- type: {
675
- name: "String"
676
- }
677
- },
678
- quarantineDetails: {
679
- serializedName: "quarantineDetails",
680
- type: {
681
- name: "String"
682
- }
683
549
  }
684
550
  }
685
551
  }
686
552
  };
687
- const ArtifactManifestProperties = {
553
+ const TagList = {
688
554
  type: {
689
555
  name: "Composite",
690
- className: "ArtifactManifestProperties",
556
+ className: "TagList",
691
557
  modelProperties: {
692
558
  registryLoginServer: {
693
559
  serializedName: "registry",
694
- readOnly: true,
560
+ required: true,
695
561
  type: {
696
562
  name: "String"
697
563
  }
698
564
  },
699
- repositoryName: {
565
+ repository: {
700
566
  serializedName: "imageName",
701
- readOnly: true,
567
+ required: true,
702
568
  type: {
703
569
  name: "String"
704
570
  }
705
571
  },
706
- digest: {
707
- serializedName: "manifest.digest",
572
+ tagAttributeBases: {
573
+ serializedName: "tags",
574
+ required: true,
575
+ type: {
576
+ name: "Sequence",
577
+ element: {
578
+ type: {
579
+ name: "Composite",
580
+ className: "TagAttributesBase"
581
+ }
582
+ }
583
+ }
584
+ },
585
+ link: {
586
+ serializedName: "link",
587
+ type: {
588
+ name: "String"
589
+ }
590
+ }
591
+ }
592
+ }
593
+ };
594
+ const TagAttributesBase = {
595
+ type: {
596
+ name: "Composite",
597
+ className: "TagAttributesBase",
598
+ modelProperties: {
599
+ name: {
600
+ serializedName: "name",
708
601
  required: true,
709
602
  readOnly: true,
710
603
  type: {
711
604
  name: "String"
712
605
  }
713
606
  },
714
- size: {
715
- serializedName: "manifest.imageSize",
607
+ digest: {
608
+ serializedName: "digest",
609
+ required: true,
716
610
  readOnly: true,
717
611
  type: {
718
- name: "Number"
612
+ name: "String"
719
613
  }
720
614
  },
721
615
  createdOn: {
722
- serializedName: "manifest.createdTime",
616
+ serializedName: "createdTime",
723
617
  required: true,
724
618
  readOnly: true,
725
619
  type: {
@@ -727,479 +621,554 @@ const ArtifactManifestProperties = {
727
621
  }
728
622
  },
729
623
  lastUpdatedOn: {
730
- serializedName: "manifest.lastUpdateTime",
624
+ serializedName: "lastUpdateTime",
731
625
  required: true,
732
626
  readOnly: true,
733
627
  type: {
734
628
  name: "DateTime"
735
629
  }
736
630
  },
737
- architecture: {
738
- serializedName: "manifest.architecture",
739
- readOnly: true,
740
- nullable: true,
631
+ canDelete: {
632
+ serializedName: "changeableAttributes.deleteEnabled",
741
633
  type: {
742
- name: "String"
634
+ name: "Boolean"
743
635
  }
744
636
  },
745
- operatingSystem: {
746
- serializedName: "manifest.os",
747
- readOnly: true,
748
- nullable: true,
637
+ canWrite: {
638
+ serializedName: "changeableAttributes.writeEnabled",
749
639
  type: {
750
- name: "String"
640
+ name: "Boolean"
751
641
  }
752
642
  },
753
- relatedArtifacts: {
754
- serializedName: "manifest.references",
755
- readOnly: true,
643
+ canList: {
644
+ serializedName: "changeableAttributes.listEnabled",
756
645
  type: {
757
- name: "Sequence",
758
- element: {
759
- type: {
760
- name: "Composite",
761
- className: "ArtifactManifestPlatform"
762
- }
763
- }
646
+ name: "Boolean"
764
647
  }
765
648
  },
766
- tags: {
767
- serializedName: "manifest.tags",
768
- readOnly: true,
649
+ canRead: {
650
+ serializedName: "changeableAttributes.readEnabled",
769
651
  type: {
770
- name: "Sequence",
771
- element: {
772
- type: {
773
- name: "String"
774
- }
775
- }
652
+ name: "Boolean"
776
653
  }
777
- },
654
+ }
655
+ }
656
+ }
657
+ };
658
+ const TagWriteableProperties = {
659
+ type: {
660
+ name: "Composite",
661
+ className: "TagWriteableProperties",
662
+ modelProperties: {
778
663
  canDelete: {
779
- serializedName: "manifest.changeableAttributes.deleteEnabled",
664
+ serializedName: "deleteEnabled",
780
665
  type: {
781
666
  name: "Boolean"
782
667
  }
783
668
  },
784
669
  canWrite: {
785
- serializedName: "manifest.changeableAttributes.writeEnabled",
670
+ serializedName: "writeEnabled",
786
671
  type: {
787
672
  name: "Boolean"
788
673
  }
789
674
  },
790
675
  canList: {
791
- serializedName: "manifest.changeableAttributes.listEnabled",
676
+ serializedName: "listEnabled",
792
677
  type: {
793
678
  name: "Boolean"
794
679
  }
795
680
  },
796
681
  canRead: {
797
- serializedName: "manifest.changeableAttributes.readEnabled",
682
+ serializedName: "readEnabled",
798
683
  type: {
799
684
  name: "Boolean"
800
685
  }
801
- },
802
- quarantineState: {
803
- serializedName: "manifest.changeableAttributes.quarantineState",
804
- type: {
805
- name: "String"
806
- }
807
- },
808
- quarantineDetails: {
809
- serializedName: "manifest.changeableAttributes.quarantineDetails",
810
- type: {
811
- name: "String"
812
- }
813
686
  }
814
687
  }
815
688
  }
816
689
  };
817
- const Paths108HwamOauth2ExchangePostRequestbodyContentApplicationXWwwFormUrlencodedSchema = {
690
+ const ArtifactTagProperties = {
818
691
  type: {
819
692
  name: "Composite",
820
- className: "Paths108HwamOauth2ExchangePostRequestbodyContentApplicationXWwwFormUrlencodedSchema",
693
+ className: "ArtifactTagProperties",
821
694
  modelProperties: {
822
- grantType: {
823
- defaultValue: "access_token",
824
- isConstant: true,
825
- serializedName: "grant_type",
695
+ registryLoginServer: {
696
+ serializedName: "registry",
697
+ required: true,
698
+ readOnly: true,
826
699
  type: {
827
700
  name: "String"
828
701
  }
829
702
  },
830
- service: {
831
- serializedName: "service",
703
+ repositoryName: {
704
+ serializedName: "imageName",
832
705
  required: true,
706
+ readOnly: true,
833
707
  type: {
834
708
  name: "String"
835
709
  }
836
710
  },
837
- aadAccessToken: {
838
- serializedName: "access_token",
711
+ name: {
712
+ serializedName: "tag.name",
839
713
  required: true,
714
+ readOnly: true,
840
715
  type: {
841
716
  name: "String"
842
717
  }
843
- }
844
- }
845
- }
846
- };
847
- const AcrRefreshToken = {
848
- type: {
849
- name: "Composite",
850
- className: "AcrRefreshToken",
851
- modelProperties: {
852
- refreshToken: {
853
- serializedName: "refresh_token",
718
+ },
719
+ digest: {
720
+ serializedName: "tag.digest",
721
+ required: true,
722
+ readOnly: true,
854
723
  type: {
855
724
  name: "String"
856
725
  }
857
- }
858
- }
859
- }
860
- };
861
- const PathsV3R3RxOauth2TokenPostRequestbodyContentApplicationXWwwFormUrlencodedSchema = {
862
- type: {
863
- name: "Composite",
864
- className: "PathsV3R3RxOauth2TokenPostRequestbodyContentApplicationXWwwFormUrlencodedSchema",
865
- modelProperties: {
866
- service: {
867
- serializedName: "service",
726
+ },
727
+ createdOn: {
728
+ serializedName: "tag.createdTime",
868
729
  required: true,
730
+ readOnly: true,
869
731
  type: {
870
- name: "String"
732
+ name: "DateTime"
871
733
  }
872
734
  },
873
- scope: {
874
- serializedName: "scope",
735
+ lastUpdatedOn: {
736
+ serializedName: "tag.lastUpdateTime",
875
737
  required: true,
738
+ readOnly: true,
876
739
  type: {
877
- name: "String"
740
+ name: "DateTime"
878
741
  }
879
742
  },
880
- acrRefreshToken: {
881
- serializedName: "refresh_token",
882
- required: true,
743
+ canDelete: {
744
+ serializedName: "tag.changeableAttributes.deleteEnabled",
883
745
  type: {
884
- name: "String"
746
+ name: "Boolean"
885
747
  }
886
748
  },
887
- grantType: {
888
- serializedName: "grant_type",
889
- required: true,
749
+ canWrite: {
750
+ serializedName: "tag.changeableAttributes.writeEnabled",
890
751
  type: {
891
- name: "Enum",
892
- allowedValues: ["refresh_token", "password"]
752
+ name: "Boolean"
753
+ }
754
+ },
755
+ canList: {
756
+ serializedName: "tag.changeableAttributes.listEnabled",
757
+ type: {
758
+ name: "Boolean"
759
+ }
760
+ },
761
+ canRead: {
762
+ serializedName: "tag.changeableAttributes.readEnabled",
763
+ type: {
764
+ name: "Boolean"
893
765
  }
894
766
  }
895
767
  }
896
768
  }
897
769
  };
898
- const AcrAccessToken = {
770
+ const AcrManifests = {
899
771
  type: {
900
772
  name: "Composite",
901
- className: "AcrAccessToken",
773
+ className: "AcrManifests",
902
774
  modelProperties: {
903
- accessToken: {
904
- serializedName: "access_token",
775
+ registryLoginServer: {
776
+ serializedName: "registry",
905
777
  type: {
906
778
  name: "String"
907
779
  }
908
- }
909
- }
910
- }
911
- };
912
- const RepositoryTags = {
913
- type: {
914
- name: "Composite",
915
- className: "RepositoryTags",
916
- modelProperties: {
917
- name: {
918
- serializedName: "name",
780
+ },
781
+ repository: {
782
+ serializedName: "imageName",
919
783
  type: {
920
784
  name: "String"
921
785
  }
922
786
  },
923
- tags: {
924
- serializedName: "tags",
787
+ manifests: {
788
+ serializedName: "manifests",
925
789
  type: {
926
790
  name: "Sequence",
927
791
  element: {
928
792
  type: {
929
- name: "String"
793
+ name: "Composite",
794
+ className: "ManifestAttributesBase"
930
795
  }
931
796
  }
932
797
  }
798
+ },
799
+ link: {
800
+ serializedName: "link",
801
+ type: {
802
+ name: "String"
803
+ }
933
804
  }
934
805
  }
935
806
  }
936
807
  };
937
- const ImageSignature = {
808
+ const ManifestAttributesBase = {
938
809
  type: {
939
810
  name: "Composite",
940
- className: "ImageSignature",
811
+ className: "ManifestAttributesBase",
941
812
  modelProperties: {
942
- header: {
943
- serializedName: "header",
813
+ digest: {
814
+ serializedName: "digest",
815
+ required: true,
816
+ readOnly: true,
944
817
  type: {
945
- name: "Composite",
946
- className: "Jwk"
818
+ name: "String"
947
819
  }
948
820
  },
949
- signature: {
950
- serializedName: "signature",
821
+ size: {
822
+ serializedName: "imageSize",
823
+ readOnly: true,
951
824
  type: {
952
- name: "String"
825
+ name: "Number"
953
826
  }
954
827
  },
955
- protected: {
956
- serializedName: "protected",
828
+ createdOn: {
829
+ serializedName: "createdTime",
830
+ required: true,
831
+ readOnly: true,
957
832
  type: {
958
- name: "String"
833
+ name: "DateTime"
959
834
  }
960
- }
961
- }
962
- }
963
- };
964
- const Jwk = {
965
- type: {
966
- name: "Composite",
967
- className: "Jwk",
968
- modelProperties: {
969
- jwk: {
970
- serializedName: "jwk",
835
+ },
836
+ lastUpdatedOn: {
837
+ serializedName: "lastUpdateTime",
838
+ required: true,
839
+ readOnly: true,
971
840
  type: {
972
- name: "Composite",
973
- className: "JWKHeader"
841
+ name: "DateTime"
974
842
  }
975
843
  },
976
- alg: {
977
- serializedName: "alg",
844
+ architecture: {
845
+ serializedName: "architecture",
846
+ readOnly: true,
847
+ nullable: true,
978
848
  type: {
979
849
  name: "String"
980
850
  }
981
- }
982
- }
983
- }
984
- };
985
- const JWKHeader = {
986
- type: {
987
- name: "Composite",
988
- className: "JWKHeader",
989
- modelProperties: {
990
- crv: {
991
- serializedName: "crv",
851
+ },
852
+ operatingSystem: {
853
+ serializedName: "os",
854
+ readOnly: true,
855
+ nullable: true,
992
856
  type: {
993
857
  name: "String"
994
858
  }
995
859
  },
996
- kid: {
997
- serializedName: "kid",
860
+ relatedArtifacts: {
861
+ serializedName: "references",
862
+ readOnly: true,
998
863
  type: {
999
- name: "String"
864
+ name: "Sequence",
865
+ element: {
866
+ type: {
867
+ name: "Composite",
868
+ className: "ArtifactManifestPlatform"
869
+ }
870
+ }
1000
871
  }
1001
872
  },
1002
- kty: {
1003
- serializedName: "kty",
873
+ tags: {
874
+ serializedName: "tags",
875
+ readOnly: true,
1004
876
  type: {
1005
- name: "String"
877
+ name: "Sequence",
878
+ element: {
879
+ type: {
880
+ name: "String"
881
+ }
882
+ }
1006
883
  }
1007
884
  },
1008
- x: {
1009
- serializedName: "x",
885
+ canDelete: {
886
+ serializedName: "changeableAttributes.deleteEnabled",
1010
887
  type: {
1011
- name: "String"
888
+ name: "Boolean"
1012
889
  }
1013
890
  },
1014
- y: {
1015
- serializedName: "y",
891
+ canWrite: {
892
+ serializedName: "changeableAttributes.writeEnabled",
1016
893
  type: {
1017
- name: "String"
894
+ name: "Boolean"
895
+ }
896
+ },
897
+ canList: {
898
+ serializedName: "changeableAttributes.listEnabled",
899
+ type: {
900
+ name: "Boolean"
901
+ }
902
+ },
903
+ canRead: {
904
+ serializedName: "changeableAttributes.readEnabled",
905
+ type: {
906
+ name: "Boolean"
1018
907
  }
1019
908
  }
1020
909
  }
1021
910
  }
1022
911
  };
1023
- const History = {
912
+ const ArtifactManifestPlatform = {
1024
913
  type: {
1025
914
  name: "Composite",
1026
- className: "History",
915
+ className: "ArtifactManifestPlatform",
1027
916
  modelProperties: {
1028
- v1Compatibility: {
1029
- serializedName: "v1Compatibility",
917
+ digest: {
918
+ serializedName: "digest",
919
+ required: true,
920
+ readOnly: true,
1030
921
  type: {
1031
922
  name: "String"
1032
923
  }
1033
- }
1034
- }
1035
- }
1036
- };
1037
- const DeleteRepositoryResult = {
1038
- type: {
1039
- name: "Composite",
1040
- className: "DeleteRepositoryResult",
1041
- modelProperties: {
1042
- deletedManifests: {
1043
- serializedName: "manifestsDeleted",
924
+ },
925
+ architecture: {
926
+ serializedName: "architecture",
1044
927
  readOnly: true,
1045
928
  type: {
1046
- name: "Sequence",
1047
- element: {
1048
- type: {
1049
- name: "String"
1050
- }
1051
- }
929
+ name: "String"
1052
930
  }
1053
931
  },
1054
- deletedTags: {
1055
- serializedName: "tagsDeleted",
932
+ operatingSystem: {
933
+ serializedName: "os",
1056
934
  readOnly: true,
1057
935
  type: {
1058
- name: "Sequence",
1059
- element: {
1060
- type: {
1061
- name: "String"
1062
- }
1063
- }
936
+ name: "String"
1064
937
  }
1065
938
  }
1066
939
  }
1067
940
  }
1068
941
  };
1069
- const FsLayer = {
942
+ const ManifestWriteableProperties = {
1070
943
  type: {
1071
944
  name: "Composite",
1072
- className: "FsLayer",
945
+ className: "ManifestWriteableProperties",
1073
946
  modelProperties: {
1074
- blobSum: {
1075
- serializedName: "blobSum",
947
+ canDelete: {
948
+ serializedName: "deleteEnabled",
1076
949
  type: {
1077
- name: "String"
950
+ name: "Boolean"
951
+ }
952
+ },
953
+ canWrite: {
954
+ serializedName: "writeEnabled",
955
+ type: {
956
+ name: "Boolean"
957
+ }
958
+ },
959
+ canList: {
960
+ serializedName: "listEnabled",
961
+ type: {
962
+ name: "Boolean"
963
+ }
964
+ },
965
+ canRead: {
966
+ serializedName: "readEnabled",
967
+ type: {
968
+ name: "Boolean"
1078
969
  }
1079
970
  }
1080
971
  }
1081
972
  }
1082
973
  };
1083
- const Descriptor = {
974
+ const ArtifactManifestProperties = {
1084
975
  type: {
1085
976
  name: "Composite",
1086
- className: "Descriptor",
977
+ className: "ArtifactManifestProperties",
1087
978
  modelProperties: {
1088
- mediaType: {
1089
- serializedName: "mediaType",
979
+ registryLoginServer: {
980
+ serializedName: "registry",
981
+ readOnly: true,
1090
982
  type: {
1091
983
  name: "String"
1092
984
  }
1093
985
  },
1094
- size: {
1095
- serializedName: "size",
986
+ repositoryName: {
987
+ serializedName: "imageName",
988
+ readOnly: true,
1096
989
  type: {
1097
- name: "Number"
990
+ name: "String"
1098
991
  }
1099
992
  },
1100
993
  digest: {
1101
- serializedName: "digest",
994
+ serializedName: "manifest.digest",
995
+ required: true,
996
+ readOnly: true,
1102
997
  type: {
1103
998
  name: "String"
1104
999
  }
1105
1000
  },
1106
- urls: {
1107
- serializedName: "urls",
1001
+ size: {
1002
+ serializedName: "manifest.imageSize",
1003
+ readOnly: true,
1108
1004
  type: {
1109
- name: "Sequence",
1110
- element: {
1111
- type: {
1112
- name: "String"
1113
- }
1114
- }
1005
+ name: "Number"
1115
1006
  }
1116
1007
  },
1117
- annotations: {
1118
- serializedName: "annotations",
1008
+ createdOn: {
1009
+ serializedName: "manifest.createdTime",
1010
+ required: true,
1011
+ readOnly: true,
1119
1012
  type: {
1120
- name: "Composite",
1121
- className: "Annotations"
1013
+ name: "DateTime"
1122
1014
  }
1123
- }
1124
- }
1125
- }
1126
- };
1127
- const Annotations = {
1128
- type: {
1129
- name: "Composite",
1130
- className: "Annotations",
1131
- additionalProperties: { type: { name: "Object" } },
1132
- modelProperties: {
1133
- created: {
1134
- serializedName: "org\\.opencontainers.image.created",
1015
+ },
1016
+ lastUpdatedOn: {
1017
+ serializedName: "manifest.lastUpdateTime",
1018
+ required: true,
1019
+ readOnly: true,
1135
1020
  type: {
1136
1021
  name: "DateTime"
1137
1022
  }
1138
1023
  },
1139
- authors: {
1140
- serializedName: "org\\.opencontainers.image.authors",
1024
+ architecture: {
1025
+ serializedName: "manifest.architecture",
1026
+ readOnly: true,
1027
+ nullable: true,
1141
1028
  type: {
1142
1029
  name: "String"
1143
1030
  }
1144
1031
  },
1145
- url: {
1146
- serializedName: "org\\.opencontainers.image.url",
1032
+ operatingSystem: {
1033
+ serializedName: "manifest.os",
1034
+ readOnly: true,
1035
+ nullable: true,
1147
1036
  type: {
1148
1037
  name: "String"
1149
1038
  }
1150
1039
  },
1151
- documentation: {
1152
- serializedName: "org\\.opencontainers.image.documentation",
1040
+ relatedArtifacts: {
1041
+ serializedName: "manifest.references",
1042
+ readOnly: true,
1153
1043
  type: {
1154
- name: "String"
1044
+ name: "Sequence",
1045
+ element: {
1046
+ type: {
1047
+ name: "Composite",
1048
+ className: "ArtifactManifestPlatform"
1049
+ }
1050
+ }
1155
1051
  }
1156
1052
  },
1157
- source: {
1158
- serializedName: "org\\.opencontainers.image.source",
1053
+ tags: {
1054
+ serializedName: "manifest.tags",
1055
+ readOnly: true,
1159
1056
  type: {
1160
- name: "String"
1057
+ name: "Sequence",
1058
+ element: {
1059
+ type: {
1060
+ name: "String"
1061
+ }
1062
+ }
1161
1063
  }
1162
1064
  },
1163
- version: {
1164
- serializedName: "org\\.opencontainers.image.version",
1065
+ canDelete: {
1066
+ serializedName: "manifest.changeableAttributes.deleteEnabled",
1165
1067
  type: {
1166
- name: "String"
1068
+ name: "Boolean"
1167
1069
  }
1168
1070
  },
1169
- revision: {
1170
- serializedName: "org\\.opencontainers.image.revision",
1071
+ canWrite: {
1072
+ serializedName: "manifest.changeableAttributes.writeEnabled",
1073
+ type: {
1074
+ name: "Boolean"
1075
+ }
1076
+ },
1077
+ canList: {
1078
+ serializedName: "manifest.changeableAttributes.listEnabled",
1079
+ type: {
1080
+ name: "Boolean"
1081
+ }
1082
+ },
1083
+ canRead: {
1084
+ serializedName: "manifest.changeableAttributes.readEnabled",
1171
1085
  type: {
1172
- name: "String"
1086
+ name: "Boolean"
1173
1087
  }
1174
- },
1175
- vendor: {
1176
- serializedName: "org\\.opencontainers.image.vendor",
1088
+ }
1089
+ }
1090
+ }
1091
+ };
1092
+ const AcrRefreshToken = {
1093
+ type: {
1094
+ name: "Composite",
1095
+ className: "AcrRefreshToken",
1096
+ modelProperties: {
1097
+ refreshToken: {
1098
+ serializedName: "refresh_token",
1177
1099
  type: {
1178
1100
  name: "String"
1179
1101
  }
1180
- },
1181
- licenses: {
1182
- serializedName: "org\\.opencontainers.image.licenses",
1102
+ }
1103
+ }
1104
+ }
1105
+ };
1106
+ const AcrAccessToken = {
1107
+ type: {
1108
+ name: "Composite",
1109
+ className: "AcrAccessToken",
1110
+ modelProperties: {
1111
+ accessToken: {
1112
+ serializedName: "access_token",
1183
1113
  type: {
1184
1114
  name: "String"
1185
1115
  }
1186
- },
1116
+ }
1117
+ }
1118
+ }
1119
+ };
1120
+ const RepositoryTags = {
1121
+ type: {
1122
+ name: "Composite",
1123
+ className: "RepositoryTags",
1124
+ modelProperties: {
1187
1125
  name: {
1188
- serializedName: "org\\.opencontainers.image.ref.name",
1126
+ serializedName: "name",
1189
1127
  type: {
1190
1128
  name: "String"
1191
1129
  }
1192
1130
  },
1193
- title: {
1194
- serializedName: "org\\.opencontainers.image.title",
1131
+ tags: {
1132
+ serializedName: "tags",
1195
1133
  type: {
1196
- name: "String"
1134
+ name: "Sequence",
1135
+ element: {
1136
+ type: {
1137
+ name: "String"
1138
+ }
1139
+ }
1140
+ }
1141
+ }
1142
+ }
1143
+ }
1144
+ };
1145
+ const DeleteRepositoryResult = {
1146
+ type: {
1147
+ name: "Composite",
1148
+ className: "DeleteRepositoryResult",
1149
+ modelProperties: {
1150
+ deletedManifests: {
1151
+ serializedName: "manifestsDeleted",
1152
+ readOnly: true,
1153
+ type: {
1154
+ name: "Sequence",
1155
+ element: {
1156
+ type: {
1157
+ name: "String"
1158
+ }
1159
+ }
1197
1160
  }
1198
1161
  },
1199
- description: {
1200
- serializedName: "org\\.opencontainers.image.description",
1162
+ deletedTags: {
1163
+ serializedName: "tagsDeleted",
1164
+ readOnly: true,
1201
1165
  type: {
1202
- name: "String"
1166
+ name: "Sequence",
1167
+ element: {
1168
+ type: {
1169
+ name: "String"
1170
+ }
1171
+ }
1203
1172
  }
1204
1173
  }
1205
1174
  }
@@ -1235,98 +1204,82 @@ const ManifestAttributesManifest = {
1235
1204
  }
1236
1205
  }
1237
1206
  }
1238
- },
1239
- quarantineTag: {
1240
- serializedName: "quarantineTag",
1241
- type: {
1242
- name: "String"
1243
- }
1244
1207
  }
1245
1208
  }
1246
1209
  }
1247
1210
  };
1248
- const ManifestListAttributes = {
1211
+ const Paths108HwamOauth2ExchangePostRequestbodyContentApplicationXWwwFormUrlencodedSchema = {
1249
1212
  type: {
1250
1213
  name: "Composite",
1251
- className: "ManifestListAttributes",
1214
+ className: "Paths108HwamOauth2ExchangePostRequestbodyContentApplicationXWwwFormUrlencodedSchema",
1252
1215
  modelProperties: {
1253
- mediaType: {
1254
- serializedName: "mediaType",
1216
+ grantType: {
1217
+ serializedName: "grant_type",
1218
+ required: true,
1255
1219
  type: {
1256
1220
  name: "String"
1257
1221
  }
1258
1222
  },
1259
- size: {
1260
- serializedName: "size",
1223
+ service: {
1224
+ serializedName: "service",
1225
+ required: true,
1261
1226
  type: {
1262
- name: "Number"
1227
+ name: "String"
1263
1228
  }
1264
1229
  },
1265
- digest: {
1266
- serializedName: "digest",
1230
+ tenant: {
1231
+ serializedName: "tenant",
1267
1232
  type: {
1268
1233
  name: "String"
1269
1234
  }
1270
1235
  },
1271
- platform: {
1272
- serializedName: "platform",
1236
+ refreshToken: {
1237
+ serializedName: "refresh_token",
1273
1238
  type: {
1274
- name: "Composite",
1275
- className: "Platform"
1239
+ name: "String"
1240
+ }
1241
+ },
1242
+ aadAccessToken: {
1243
+ serializedName: "access_token",
1244
+ type: {
1245
+ name: "String"
1276
1246
  }
1277
1247
  }
1278
1248
  }
1279
1249
  }
1280
1250
  };
1281
- const Platform = {
1251
+ const PathsV3R3RxOauth2TokenPostRequestbodyContentApplicationXWwwFormUrlencodedSchema = {
1282
1252
  type: {
1283
1253
  name: "Composite",
1284
- className: "Platform",
1254
+ className: "PathsV3R3RxOauth2TokenPostRequestbodyContentApplicationXWwwFormUrlencodedSchema",
1285
1255
  modelProperties: {
1286
- architecture: {
1287
- serializedName: "architecture",
1288
- type: {
1289
- name: "String"
1290
- }
1291
- },
1292
- os: {
1293
- serializedName: "os",
1256
+ service: {
1257
+ serializedName: "service",
1258
+ required: true,
1294
1259
  type: {
1295
1260
  name: "String"
1296
1261
  }
1297
1262
  },
1298
- osVersion: {
1299
- serializedName: "os\\.version",
1263
+ scope: {
1264
+ serializedName: "scope",
1265
+ required: true,
1300
1266
  type: {
1301
1267
  name: "String"
1302
1268
  }
1303
1269
  },
1304
- osFeatures: {
1305
- serializedName: "os\\.features",
1306
- type: {
1307
- name: "Sequence",
1308
- element: {
1309
- type: {
1310
- name: "String"
1311
- }
1312
- }
1313
- }
1314
- },
1315
- variant: {
1316
- serializedName: "variant",
1270
+ acrRefreshToken: {
1271
+ serializedName: "refresh_token",
1272
+ required: true,
1317
1273
  type: {
1318
1274
  name: "String"
1319
1275
  }
1320
1276
  },
1321
- features: {
1322
- serializedName: "features",
1277
+ grantType: {
1278
+ serializedName: "grant_type",
1279
+ required: true,
1323
1280
  type: {
1324
- name: "Sequence",
1325
- element: {
1326
- type: {
1327
- name: "String"
1328
- }
1329
- }
1281
+ name: "Enum",
1282
+ allowedValues: ["refresh_token", "password"]
1330
1283
  }
1331
1284
  }
1332
1285
  }
@@ -1926,6 +1879,15 @@ var Mappers = /*#__PURE__*/Object.freeze({
1926
1879
  AcrErrors: AcrErrors,
1927
1880
  AcrErrorInfo: AcrErrorInfo,
1928
1881
  Manifest: Manifest,
1882
+ ManifestListAttributes: ManifestListAttributes,
1883
+ Platform: Platform,
1884
+ Descriptor: Descriptor,
1885
+ Annotations: Annotations,
1886
+ FsLayer: FsLayer,
1887
+ History: History,
1888
+ ImageSignature: ImageSignature,
1889
+ Jwk: Jwk,
1890
+ JWKHeader: JWKHeader,
1929
1891
  Repositories: Repositories,
1930
1892
  ContainerRepositoryProperties: ContainerRepositoryProperties,
1931
1893
  RepositoryWriteableProperties: RepositoryWriteableProperties,
@@ -1938,23 +1900,14 @@ var Mappers = /*#__PURE__*/Object.freeze({
1938
1900
  ArtifactManifestPlatform: ArtifactManifestPlatform,
1939
1901
  ManifestWriteableProperties: ManifestWriteableProperties,
1940
1902
  ArtifactManifestProperties: ArtifactManifestProperties,
1941
- Paths108HwamOauth2ExchangePostRequestbodyContentApplicationXWwwFormUrlencodedSchema: Paths108HwamOauth2ExchangePostRequestbodyContentApplicationXWwwFormUrlencodedSchema,
1942
1903
  AcrRefreshToken: AcrRefreshToken,
1943
- PathsV3R3RxOauth2TokenPostRequestbodyContentApplicationXWwwFormUrlencodedSchema: PathsV3R3RxOauth2TokenPostRequestbodyContentApplicationXWwwFormUrlencodedSchema,
1944
1904
  AcrAccessToken: AcrAccessToken,
1945
1905
  RepositoryTags: RepositoryTags,
1946
- ImageSignature: ImageSignature,
1947
- Jwk: Jwk,
1948
- JWKHeader: JWKHeader,
1949
- History: History,
1950
1906
  DeleteRepositoryResult: DeleteRepositoryResult,
1951
- FsLayer: FsLayer,
1952
- Descriptor: Descriptor,
1953
- Annotations: Annotations,
1954
1907
  TagAttributesTag: TagAttributesTag,
1955
1908
  ManifestAttributesManifest: ManifestAttributesManifest,
1956
- ManifestListAttributes: ManifestListAttributes,
1957
- Platform: Platform,
1909
+ Paths108HwamOauth2ExchangePostRequestbodyContentApplicationXWwwFormUrlencodedSchema: Paths108HwamOauth2ExchangePostRequestbodyContentApplicationXWwwFormUrlencodedSchema,
1910
+ PathsV3R3RxOauth2TokenPostRequestbodyContentApplicationXWwwFormUrlencodedSchema: PathsV3R3RxOauth2TokenPostRequestbodyContentApplicationXWwwFormUrlencodedSchema,
1958
1911
  ManifestWrapper: ManifestWrapper,
1959
1912
  ManifestList: ManifestList,
1960
1913
  V2Manifest: V2Manifest,
@@ -2071,6 +2024,16 @@ const n = {
2071
2024
  }
2072
2025
  }
2073
2026
  };
2027
+ const apiVersion = {
2028
+ parameterPath: "apiVersion",
2029
+ mapper: {
2030
+ serializedName: "api-version",
2031
+ required: true,
2032
+ type: {
2033
+ name: "String"
2034
+ }
2035
+ }
2036
+ };
2074
2037
  const contentType1 = {
2075
2038
  parameterPath: ["options", "contentType"],
2076
2039
  mapper: {
@@ -2247,9 +2210,52 @@ const contentType3 = {
2247
2210
  }
2248
2211
  }
2249
2212
  };
2250
- const aadAccessToken = {
2251
- parameterPath: ["options", "aadAccessToken"],
2252
- mapper: Paths108HwamOauth2ExchangePostRequestbodyContentApplicationXWwwFormUrlencodedSchema
2213
+ const grantType = {
2214
+ parameterPath: "grantType",
2215
+ mapper: {
2216
+ serializedName: "grant_type",
2217
+ required: true,
2218
+ type: {
2219
+ name: "String"
2220
+ }
2221
+ }
2222
+ };
2223
+ const service = {
2224
+ parameterPath: "service",
2225
+ mapper: {
2226
+ serializedName: "service",
2227
+ required: true,
2228
+ type: {
2229
+ name: "String"
2230
+ }
2231
+ }
2232
+ };
2233
+ const tenant = {
2234
+ parameterPath: ["options", "tenant"],
2235
+ mapper: {
2236
+ serializedName: "tenant",
2237
+ type: {
2238
+ name: "String"
2239
+ }
2240
+ }
2241
+ };
2242
+ const refreshToken = {
2243
+ parameterPath: ["options", "refreshToken"],
2244
+ mapper: {
2245
+ serializedName: "refresh_token",
2246
+ type: {
2247
+ name: "String"
2248
+ }
2249
+ }
2250
+ };
2251
+ const accessToken = {
2252
+ parameterPath: ["options", "accessToken"],
2253
+ mapper: {
2254
+ serializedName: "access_token",
2255
+ type: {
2256
+ name: "String"
2257
+ }
2258
+ }
2253
2259
  };
2254
2260
  const accept4 = {
2255
2261
  parameterPath: "accept",
@@ -2262,9 +2268,36 @@ const accept4 = {
2262
2268
  }
2263
2269
  }
2264
2270
  };
2265
- const acrRefreshToken = {
2266
- parameterPath: ["options", "acrRefreshToken"],
2267
- mapper: PathsV3R3RxOauth2TokenPostRequestbodyContentApplicationXWwwFormUrlencodedSchema
2271
+ const scope = {
2272
+ parameterPath: "scope",
2273
+ mapper: {
2274
+ serializedName: "scope",
2275
+ required: true,
2276
+ type: {
2277
+ name: "String"
2278
+ }
2279
+ }
2280
+ };
2281
+ const refreshToken1 = {
2282
+ parameterPath: "refreshToken",
2283
+ mapper: {
2284
+ serializedName: "refresh_token",
2285
+ required: true,
2286
+ type: {
2287
+ name: "String"
2288
+ }
2289
+ }
2290
+ };
2291
+ const grantType1 = {
2292
+ parameterPath: "grantType",
2293
+ mapper: {
2294
+ serializedName: "grant_type",
2295
+ required: true,
2296
+ type: {
2297
+ name: "Enum",
2298
+ allowedValues: ["refresh_token", "password"]
2299
+ }
2300
+ }
2268
2301
  };
2269
2302
 
2270
2303
  /*
@@ -2274,8 +2307,8 @@ const acrRefreshToken = {
2274
2307
  * Code generated by Microsoft (R) AutoRest Code Generator.
2275
2308
  * Changes may cause incorrect behavior and will be lost if the code is regenerated.
2276
2309
  */
2277
- /** Class representing a ContainerRegistry. */
2278
- class ContainerRegistry {
2310
+ /** Class containing ContainerRegistry operations. */
2311
+ class ContainerRegistryImpl {
2279
2312
  /**
2280
2313
  * Initialize a new instance of the class ContainerRegistry class.
2281
2314
  * @param client Reference to the service client
@@ -2458,7 +2491,7 @@ const getManifestOperationSpec = {
2458
2491
  httpMethod: "GET",
2459
2492
  responses: {
2460
2493
  200: {
2461
- bodyMapper: Manifest
2494
+ bodyMapper: ManifestWrapper
2462
2495
  },
2463
2496
  default: {
2464
2497
  bodyMapper: AcrErrors
@@ -2512,7 +2545,7 @@ const getRepositoriesOperationSpec = {
2512
2545
  bodyMapper: AcrErrors
2513
2546
  }
2514
2547
  },
2515
- queryParameters: [last, n],
2548
+ queryParameters: [last, n, apiVersion],
2516
2549
  urlParameters: [url],
2517
2550
  headerParameters: [accept],
2518
2551
  serializer
@@ -2528,6 +2561,7 @@ const getPropertiesOperationSpec = {
2528
2561
  bodyMapper: AcrErrors
2529
2562
  }
2530
2563
  },
2564
+ queryParameters: [apiVersion],
2531
2565
  urlParameters: [url, name],
2532
2566
  headerParameters: [accept],
2533
2567
  serializer
@@ -2542,6 +2576,7 @@ const deleteRepositoryOperationSpec = {
2542
2576
  bodyMapper: AcrErrors
2543
2577
  }
2544
2578
  },
2579
+ queryParameters: [apiVersion],
2545
2580
  urlParameters: [url, name],
2546
2581
  headerParameters: [accept],
2547
2582
  serializer
@@ -2558,6 +2593,7 @@ const updatePropertiesOperationSpec = {
2558
2593
  }
2559
2594
  },
2560
2595
  requestBody: value,
2596
+ queryParameters: [apiVersion],
2561
2597
  urlParameters: [url, name],
2562
2598
  headerParameters: [accept, contentType1],
2563
2599
  mediaType: "json",
@@ -2578,6 +2614,7 @@ const getTagsOperationSpec = {
2578
2614
  queryParameters: [
2579
2615
  last,
2580
2616
  n,
2617
+ apiVersion,
2581
2618
  orderby,
2582
2619
  digest
2583
2620
  ],
@@ -2596,6 +2633,7 @@ const getTagPropertiesOperationSpec = {
2596
2633
  bodyMapper: AcrErrors
2597
2634
  }
2598
2635
  },
2636
+ queryParameters: [apiVersion],
2599
2637
  urlParameters: [url, name, reference],
2600
2638
  headerParameters: [accept],
2601
2639
  serializer
@@ -2612,6 +2650,7 @@ const updateTagAttributesOperationSpec = {
2612
2650
  }
2613
2651
  },
2614
2652
  requestBody: value1,
2653
+ queryParameters: [apiVersion],
2615
2654
  urlParameters: [url, name, reference],
2616
2655
  headerParameters: [accept, contentType1],
2617
2656
  mediaType: "json",
@@ -2627,6 +2666,7 @@ const deleteTagOperationSpec = {
2627
2666
  bodyMapper: AcrErrors
2628
2667
  }
2629
2668
  },
2669
+ queryParameters: [apiVersion],
2630
2670
  urlParameters: [url, name, reference],
2631
2671
  headerParameters: [accept],
2632
2672
  serializer
@@ -2643,7 +2683,12 @@ const getManifestsOperationSpec = {
2643
2683
  bodyMapper: AcrErrors
2644
2684
  }
2645
2685
  },
2646
- queryParameters: [last, n, orderby],
2686
+ queryParameters: [
2687
+ last,
2688
+ n,
2689
+ apiVersion,
2690
+ orderby
2691
+ ],
2647
2692
  urlParameters: [url, name],
2648
2693
  headerParameters: [accept],
2649
2694
  serializer
@@ -2659,6 +2704,7 @@ const getManifestPropertiesOperationSpec = {
2659
2704
  bodyMapper: AcrErrors
2660
2705
  }
2661
2706
  },
2707
+ queryParameters: [apiVersion],
2662
2708
  urlParameters: [url, name, digest1],
2663
2709
  headerParameters: [accept],
2664
2710
  serializer
@@ -2675,6 +2721,7 @@ const updateManifestPropertiesOperationSpec = {
2675
2721
  }
2676
2722
  },
2677
2723
  requestBody: value2,
2724
+ queryParameters: [apiVersion],
2678
2725
  urlParameters: [url, name, digest1],
2679
2726
  headerParameters: [accept, contentType1],
2680
2727
  mediaType: "json",
@@ -2692,7 +2739,7 @@ const getRepositoriesNextOperationSpec = {
2692
2739
  bodyMapper: AcrErrors
2693
2740
  }
2694
2741
  },
2695
- queryParameters: [last, n],
2742
+ queryParameters: [last, n, apiVersion],
2696
2743
  urlParameters: [url, nextLink],
2697
2744
  headerParameters: [accept],
2698
2745
  serializer
@@ -2712,6 +2759,7 @@ const getTagsNextOperationSpec = {
2712
2759
  queryParameters: [
2713
2760
  last,
2714
2761
  n,
2762
+ apiVersion,
2715
2763
  orderby,
2716
2764
  digest
2717
2765
  ],
@@ -2731,7 +2779,12 @@ const getManifestsNextOperationSpec = {
2731
2779
  bodyMapper: AcrErrors
2732
2780
  }
2733
2781
  },
2734
- queryParameters: [last, n, orderby],
2782
+ queryParameters: [
2783
+ last,
2784
+ n,
2785
+ apiVersion,
2786
+ orderby
2787
+ ],
2735
2788
  urlParameters: [url, name, nextLink],
2736
2789
  headerParameters: [accept],
2737
2790
  serializer
@@ -2744,8 +2797,8 @@ const getManifestsNextOperationSpec = {
2744
2797
  * Code generated by Microsoft (R) AutoRest Code Generator.
2745
2798
  * Changes may cause incorrect behavior and will be lost if the code is regenerated.
2746
2799
  */
2747
- /** Class representing a ContainerRegistryBlob. */
2748
- class ContainerRegistryBlob {
2800
+ /** Class containing ContainerRegistryBlob operations. */
2801
+ class ContainerRegistryBlobImpl {
2749
2802
  /**
2750
2803
  * Initialize a new instance of the class ContainerRegistryBlob class.
2751
2804
  * @param client Reference to the service client
@@ -3053,8 +3106,8 @@ const checkChunkExistsOperationSpec = {
3053
3106
  * Code generated by Microsoft (R) AutoRest Code Generator.
3054
3107
  * Changes may cause incorrect behavior and will be lost if the code is regenerated.
3055
3108
  */
3056
- /** Class representing a Authentication. */
3057
- class Authentication {
3109
+ /** Class containing Authentication operations. */
3110
+ class AuthenticationImpl {
3058
3111
  /**
3059
3112
  * Initialize a new instance of the class Authentication class.
3060
3113
  * @param client Reference to the service client
@@ -3064,17 +3117,24 @@ class Authentication {
3064
3117
  }
3065
3118
  /**
3066
3119
  * Exchange AAD tokens for an ACR refresh Token
3120
+ * @param grantType Can take a value of access_token_refresh_token, or access_token, or refresh_token
3121
+ * @param service Indicates the name of your Azure container registry.
3067
3122
  * @param options The options parameters.
3068
3123
  */
3069
- exchangeAadAccessTokenForAcrRefreshToken(options) {
3070
- return this.client.sendOperationRequest({ options }, exchangeAadAccessTokenForAcrRefreshTokenOperationSpec);
3124
+ exchangeAadAccessTokenForAcrRefreshToken(grantType, service, options) {
3125
+ return this.client.sendOperationRequest({ grantType, service, options }, exchangeAadAccessTokenForAcrRefreshTokenOperationSpec);
3071
3126
  }
3072
3127
  /**
3073
3128
  * Exchange ACR Refresh token for an ACR Access Token
3129
+ * @param service Indicates the name of your Azure container registry.
3130
+ * @param scope Which is expected to be a valid scope, and can be specified more than once for multiple
3131
+ * scope requests. You obtained this from the Www-Authenticate response header from the challenge.
3132
+ * @param refreshToken Must be a valid ACR refresh token
3133
+ * @param grantType Grant type is expected to be refresh_token
3074
3134
  * @param options The options parameters.
3075
3135
  */
3076
- exchangeAcrRefreshTokenForAcrAccessToken(options) {
3077
- return this.client.sendOperationRequest({ options }, exchangeAcrRefreshTokenForAcrAccessTokenOperationSpec);
3136
+ exchangeAcrRefreshTokenForAcrAccessToken(service, scope, refreshToken, grantType, options) {
3137
+ return this.client.sendOperationRequest({ service, scope, refreshToken, grantType, options }, exchangeAcrRefreshTokenForAcrAccessTokenOperationSpec);
3078
3138
  }
3079
3139
  }
3080
3140
  // Operation Specifications
@@ -3090,7 +3150,14 @@ const exchangeAadAccessTokenForAcrRefreshTokenOperationSpec = {
3090
3150
  bodyMapper: AcrErrors
3091
3151
  }
3092
3152
  },
3093
- formDataParameters: [aadAccessToken],
3153
+ formDataParameters: [
3154
+ grantType,
3155
+ service,
3156
+ tenant,
3157
+ refreshToken,
3158
+ accessToken
3159
+ ],
3160
+ queryParameters: [apiVersion],
3094
3161
  urlParameters: [url],
3095
3162
  headerParameters: [contentType3, accept4],
3096
3163
  serializer: serializer$2
@@ -3106,7 +3173,13 @@ const exchangeAcrRefreshTokenForAcrAccessTokenOperationSpec = {
3106
3173
  bodyMapper: AcrErrors
3107
3174
  }
3108
3175
  },
3109
- formDataParameters: [acrRefreshToken],
3176
+ formDataParameters: [
3177
+ service,
3178
+ scope,
3179
+ refreshToken1,
3180
+ grantType1
3181
+ ],
3182
+ queryParameters: [apiVersion],
3110
3183
  urlParameters: [url],
3111
3184
  headerParameters: [contentType3, accept4],
3112
3185
  serializer: serializer$2
@@ -3124,12 +3197,16 @@ class GeneratedClientContext extends coreClient.ServiceClient {
3124
3197
  /**
3125
3198
  * Initializes a new instance of the GeneratedClientContext class.
3126
3199
  * @param url Registry login URL
3200
+ * @param apiVersion Api Version
3127
3201
  * @param options The parameter options
3128
3202
  */
3129
- constructor(url, options) {
3203
+ constructor(url, apiVersion, options) {
3130
3204
  if (url === undefined) {
3131
3205
  throw new Error("'url' cannot be null");
3132
3206
  }
3207
+ if (apiVersion === undefined) {
3208
+ throw new Error("'apiVersion' cannot be null");
3209
+ }
3133
3210
  // Initializing default values for options
3134
3211
  if (!options) {
3135
3212
  options = {};
@@ -3137,10 +3214,17 @@ class GeneratedClientContext extends coreClient.ServiceClient {
3137
3214
  const defaults = {
3138
3215
  requestContentType: "application/json; charset=utf-8"
3139
3216
  };
3140
- const optionsWithDefaults = Object.assign(Object.assign(Object.assign({}, defaults), options), { baseUri: options.endpoint || "{url}" });
3217
+ const packageDetails = `azsdk-js-container-registry/1.0.0`;
3218
+ const userAgentPrefix = options.userAgentOptions && options.userAgentOptions.userAgentPrefix
3219
+ ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`
3220
+ : `${packageDetails}`;
3221
+ const optionsWithDefaults = Object.assign(Object.assign(Object.assign({}, defaults), options), { userAgentOptions: {
3222
+ userAgentPrefix
3223
+ }, baseUri: options.endpoint || "{url}" });
3141
3224
  super(optionsWithDefaults);
3142
3225
  // Parameter assignments
3143
3226
  this.url = url;
3227
+ this.apiVersion = apiVersion;
3144
3228
  }
3145
3229
  }
3146
3230
 
@@ -3156,13 +3240,14 @@ class GeneratedClient extends GeneratedClientContext {
3156
3240
  /**
3157
3241
  * Initializes a new instance of the GeneratedClient class.
3158
3242
  * @param url Registry login URL
3243
+ * @param apiVersion Api Version
3159
3244
  * @param options The parameter options
3160
3245
  */
3161
- constructor(url, options) {
3162
- super(url, options);
3163
- this.containerRegistry = new ContainerRegistry(this);
3164
- this.containerRegistryBlob = new ContainerRegistryBlob(this);
3165
- this.authentication = new Authentication(this);
3246
+ constructor(url, apiVersion, options) {
3247
+ super(url, apiVersion, options);
3248
+ this.containerRegistry = new ContainerRegistryImpl(this);
3249
+ this.containerRegistryBlob = new ContainerRegistryBlobImpl(this);
3250
+ this.authentication = new AuthenticationImpl(this);
3166
3251
  }
3167
3252
  }
3168
3253
 
@@ -3177,7 +3262,7 @@ class GeneratedClient extends GeneratedClientContext {
3177
3262
  */
3178
3263
  const createSpan = coreTracing.createSpanFunction({
3179
3264
  namespace: "Azure.Containers",
3180
- packagePrefix: "Azure.Containers.ContainerRegistry"
3265
+ packagePrefix: "Azure.Containers.ContainerRegistry",
3181
3266
  });
3182
3267
 
3183
3268
  // Copyright (c) Microsoft Corporation.
@@ -3222,6 +3307,7 @@ function parseWWWAuthenticate(wwwAuthenticate) {
3222
3307
  }
3223
3308
 
3224
3309
  // Copyright (c) Microsoft Corporation.
3310
+ // Licensed under the MIT license.
3225
3311
  function delay(t, value) {
3226
3312
  return new Promise((resolve) => setTimeout(() => resolve(value), t));
3227
3313
  }
@@ -3229,7 +3315,7 @@ function delay(t, value) {
3229
3315
  const DEFAULT_CYCLER_OPTIONS = {
3230
3316
  forcedRefreshWindowInMs: 1000,
3231
3317
  retryIntervalInMs: 3000,
3232
- refreshWindowInMs: 1000 * 60 * 2 // Start refreshing 2m before expiry
3318
+ refreshWindowInMs: 1000 * 60 * 2, // Start refreshing 2m before expiry
3233
3319
  };
3234
3320
  /**
3235
3321
  * Converts an an unreliable access token getter (which may resolve with null)
@@ -3241,37 +3327,33 @@ const DEFAULT_CYCLER_OPTIONS = {
3241
3327
  * @param refreshTimeout - The timestamp after which the refresh attempt will fail, throwing an exception.
3242
3328
  * @returns - A promise that, if it resolves, will resolve with an access token.
3243
3329
  */
3244
- function beginRefresh(getAccessToken, retryIntervalInMs, refreshTimeout) {
3245
- return tslib.__awaiter(this, void 0, void 0, function* () {
3246
- // This wrapper handles exceptions gracefully as long as we haven't exceeded
3247
- // the timeout.
3248
- function tryGetAccessToken() {
3249
- return tslib.__awaiter(this, void 0, void 0, function* () {
3250
- if (Date.now() < refreshTimeout) {
3251
- try {
3252
- return yield getAccessToken();
3253
- }
3254
- catch (_a) {
3255
- return null;
3256
- }
3257
- }
3258
- else {
3259
- const finalToken = yield getAccessToken();
3260
- // Timeout is up, so throw if it's still null
3261
- if (finalToken === null) {
3262
- throw new Error("Failed to refresh access token.");
3263
- }
3264
- return finalToken;
3265
- }
3266
- });
3330
+ async function beginRefresh(getAccessToken, retryIntervalInMs, refreshTimeout) {
3331
+ // This wrapper handles exceptions gracefully as long as we haven't exceeded
3332
+ // the timeout.
3333
+ async function tryGetAccessToken() {
3334
+ if (Date.now() < refreshTimeout) {
3335
+ try {
3336
+ return await getAccessToken();
3337
+ }
3338
+ catch (_a) {
3339
+ return null;
3340
+ }
3267
3341
  }
3268
- let token = yield tryGetAccessToken();
3269
- while (token === null) {
3270
- yield delay(retryIntervalInMs);
3271
- token = yield tryGetAccessToken();
3342
+ else {
3343
+ const finalToken = await getAccessToken();
3344
+ // Timeout is up, so throw if it's still null
3345
+ if (finalToken === null) {
3346
+ throw new Error("Failed to refresh access token.");
3347
+ }
3348
+ return finalToken;
3272
3349
  }
3273
- return token;
3274
- });
3350
+ }
3351
+ let token = await tryGetAccessToken();
3352
+ while (token === null) {
3353
+ await delay(retryIntervalInMs);
3354
+ token = await tryGetAccessToken();
3355
+ }
3356
+ return token;
3275
3357
  }
3276
3358
  /**
3277
3359
  * Creates a token cycler from a credential, scopes, and optional settings.
@@ -3317,7 +3399,7 @@ function createTokenCycler(credential, tokenCyclerOptions) {
3317
3399
  */
3318
3400
  get mustRefresh() {
3319
3401
  return (token === null || token.expiresOnTimestamp - options.forcedRefreshWindowInMs < Date.now());
3320
- }
3402
+ },
3321
3403
  };
3322
3404
  /**
3323
3405
  * Starts a refresh job or returns the existing job if one is already
@@ -3353,7 +3435,7 @@ function createTokenCycler(credential, tokenCyclerOptions) {
3353
3435
  get cachedToken() {
3354
3436
  return token || undefined;
3355
3437
  },
3356
- getToken: (scopes, tokenOptions) => tslib.__awaiter(this, void 0, void 0, function* () {
3438
+ getToken: async (scopes, tokenOptions) => {
3357
3439
  //
3358
3440
  // Simple rules:
3359
3441
  // - If we MUST refresh, then return the refresh task, blocking
@@ -3369,7 +3451,7 @@ function createTokenCycler(credential, tokenCyclerOptions) {
3369
3451
  refresh(scopes, tokenOptions);
3370
3452
  }
3371
3453
  return token;
3372
- })
3454
+ },
3373
3455
  };
3374
3456
  }
3375
3457
 
@@ -3398,7 +3480,7 @@ class ChallengeHandler {
3398
3480
  this.credential = credential;
3399
3481
  this.options = options;
3400
3482
  this.cycler = createTokenCycler(credential, {
3401
- refreshWindowInMs: fiveMinutesInMs
3483
+ refreshWindowInMs: fiveMinutesInMs,
3402
3484
  });
3403
3485
  }
3404
3486
  authorizeRequest(_options) {
@@ -3407,41 +3489,39 @@ class ChallengeHandler {
3407
3489
  /**
3408
3490
  * Updates the authentication context based on the challenge.
3409
3491
  */
3410
- authorizeRequestOnChallenge(options) {
3492
+ async authorizeRequestOnChallenge(options) {
3411
3493
  var _a;
3412
- return tslib.__awaiter(this, void 0, void 0, function* () {
3413
- // Once we're here, we've completed Step 1.
3414
- const challenge = (_a = options.response) === null || _a === void 0 ? void 0 : _a.headers.get("WWW-Authenticate");
3415
- if (!challenge) {
3416
- throw new Error("Failed to retrieve challenge from response headers");
3417
- }
3418
- // Step 2: Parse challenge string to retrieve serviceName and scope, where scope is the ACR Scope
3419
- const { service, scope } = parseWWWAuthenticate(challenge);
3420
- if (!service) {
3421
- throw new Error("Failed to retrieve 'service' from challenge");
3422
- }
3423
- if (!scope) {
3424
- throw new Error("Failed to retrieve 'scope' from challenge");
3425
- }
3426
- // Step 3: Exchange AAD Access Token for ACR Refresh Token
3427
- // For anonymous access, we send the request with grant_type=password and an empty ACR refresh token
3428
- // For non-anonymous access, we get an AAD token then exchange it for an ACR fresh token
3429
- let grantType;
3430
- let acrRefreshToken;
3431
- if (this.credential.isAnonymousAccess) {
3432
- grantType = "password";
3433
- acrRefreshToken = "";
3434
- }
3435
- else {
3436
- grantType = "refresh_token";
3437
- acrRefreshToken = (yield this.cycler.getToken(scope, Object.assign(Object.assign({}, options), { service }))).token;
3438
- }
3439
- // Step 4: Send in acrRefreshToken and get back acrAccessToken
3440
- const acrAccessToken = yield this.credential.tokenService.ExchangeAcrRefreshTokenForAcrAccessTokenAsync(acrRefreshToken, service, scope, grantType, this.options);
3441
- // Step 5 - Authorize Request. At this point we're done with AAD and using an ACR access token.
3442
- options.request.headers.set("Authorization", `Bearer ${acrAccessToken}`);
3443
- return true;
3444
- });
3494
+ // Once we're here, we've completed Step 1.
3495
+ const challenge = (_a = options.response) === null || _a === void 0 ? void 0 : _a.headers.get("WWW-Authenticate");
3496
+ if (!challenge) {
3497
+ throw new Error("Failed to retrieve challenge from response headers");
3498
+ }
3499
+ // Step 2: Parse challenge string to retrieve serviceName and scope, where scope is the ACR Scope
3500
+ const { service, scope } = parseWWWAuthenticate(challenge);
3501
+ if (!service) {
3502
+ throw new Error("Failed to retrieve 'service' from challenge");
3503
+ }
3504
+ if (!scope) {
3505
+ throw new Error("Failed to retrieve 'scope' from challenge");
3506
+ }
3507
+ // Step 3: Exchange AAD Access Token for ACR Refresh Token
3508
+ // For anonymous access, we send the request with grant_type=password and an empty ACR refresh token
3509
+ // For non-anonymous access, we get an AAD token then exchange it for an ACR fresh token
3510
+ let grantType;
3511
+ let acrRefreshToken;
3512
+ if (this.credential.isAnonymousAccess) {
3513
+ grantType = "password";
3514
+ acrRefreshToken = "";
3515
+ }
3516
+ else {
3517
+ grantType = "refresh_token";
3518
+ acrRefreshToken = (await this.cycler.getToken(scope, Object.assign(Object.assign({}, options), { service }))).token;
3519
+ }
3520
+ // Step 4: Send in acrRefreshToken and get back acrAccessToken
3521
+ const acrAccessToken = await this.credential.tokenService.ExchangeAcrRefreshTokenForAcrAccessTokenAsync(acrRefreshToken, service, scope, grantType, this.options);
3522
+ // Step 5 - Authorize Request. At this point we're done with AAD and using an ACR access token.
3523
+ options.request.headers.set("Authorization", `Bearer ${acrAccessToken}`);
3524
+ return true;
3445
3525
  }
3446
3526
  }
3447
3527
 
@@ -3454,14 +3534,14 @@ function toManifestWritableProperties(from) {
3454
3534
  canDelete: from.canDelete,
3455
3535
  canList: from.canList,
3456
3536
  canRead: from.canRead,
3457
- canWrite: from.canWrite
3537
+ canWrite: from.canWrite,
3458
3538
  }
3459
3539
  : undefined;
3460
3540
  }
3461
3541
  function toArtifactManifestProperties(from, repositoryName, registryLoginServer) {
3462
3542
  var _a, _b, _c, _d;
3463
3543
  return Object.assign({ registryLoginServer,
3464
- repositoryName, digest: from.digest, size: from.size, createdOn: from.createdOn, lastUpdatedOn: from.lastUpdatedOn, architecture: (_a = from.architecture) !== null && _a !== void 0 ? _a : undefined, operatingSystem: (_b = from.operatingSystem) !== null && _b !== void 0 ? _b : undefined, relatedArtifacts: (_c = from.relatedArtifacts) !== null && _c !== void 0 ? _c : [], tags: (_d = from.tags) !== null && _d !== void 0 ? _d : [] }, toManifestWritableProperties(from));
3544
+ repositoryName, digest: from.digest, sizeInBytes: from.size, createdOn: from.createdOn, lastUpdatedOn: from.lastUpdatedOn, architecture: (_a = from.architecture) !== null && _a !== void 0 ? _a : undefined, operatingSystem: (_b = from.operatingSystem) !== null && _b !== void 0 ? _b : undefined, relatedArtifacts: (_c = from.relatedArtifacts) !== null && _c !== void 0 ? _c : [], tags: (_d = from.tags) !== null && _d !== void 0 ? _d : [] }, toManifestWritableProperties(from));
3465
3545
  }
3466
3546
  function toServiceTagOrderBy(orderBy) {
3467
3547
  return orderBy === "LastUpdatedOnAscending"
@@ -3508,163 +3588,176 @@ class RegistryArtifactImpl {
3508
3588
  /**
3509
3589
  * digest of this artifact.
3510
3590
  */
3511
- getDigest() {
3512
- return tslib.__awaiter(this, void 0, void 0, function* () {
3513
- if (this.digest) {
3514
- return this.digest;
3515
- }
3516
- if (!isDigest(this.tagOrDigest)) {
3517
- this.digest = (yield this.getTagProperties(this.tagOrDigest)).digest;
3518
- }
3519
- else {
3520
- this.digest = this.tagOrDigest;
3521
- }
3591
+ async getDigest() {
3592
+ if (this.digest) {
3522
3593
  return this.digest;
3523
- });
3594
+ }
3595
+ if (!isDigest(this.tagOrDigest)) {
3596
+ this.digest = (await this.getTagProperties(this.tagOrDigest)).digest;
3597
+ }
3598
+ else {
3599
+ this.digest = this.tagOrDigest;
3600
+ }
3601
+ return this.digest;
3524
3602
  }
3525
3603
  /**
3526
- * Deletes this artifact.
3604
+ * Deletes this registry artifact by deleting its manifest.
3527
3605
  * @param options -
3528
3606
  */
3529
- delete(options = {}) {
3530
- return tslib.__awaiter(this, void 0, void 0, function* () {
3531
- const { span, updatedOptions } = createSpan("RegistryArtifact-delete", options);
3532
- try {
3533
- yield this.client.containerRegistry.deleteManifest(this.repositoryName, yield this.getDigest(), updatedOptions);
3534
- }
3535
- catch (e) {
3536
- span.setStatus({ code: coreTracing.SpanStatusCode.ERROR, message: e.message });
3537
- throw e;
3538
- }
3539
- finally {
3540
- span.end();
3541
- }
3542
- });
3607
+ async delete(options = {}) {
3608
+ const { span, updatedOptions } = createSpan("RegistryArtifact-delete", options);
3609
+ try {
3610
+ await this.client.containerRegistry.deleteManifest(this.repositoryName, await this.getDigest(), updatedOptions);
3611
+ }
3612
+ catch (e) {
3613
+ span.setStatus({ code: coreTracing.SpanStatusCode.ERROR, message: e.message });
3614
+ throw e;
3615
+ }
3616
+ finally {
3617
+ span.end();
3618
+ }
3543
3619
  }
3544
3620
  /**
3545
- * Deletes a tag.
3546
- * @param tag - the name of the tag to be deleted.
3621
+ * Deletes a tag. This removes the tag from the artifact and its manifest.
3622
+ * @param tag - the name of the tag to delete.
3547
3623
  * @param options -
3548
3624
  */
3549
- deleteTag(tag, options = {}) {
3550
- return tslib.__awaiter(this, void 0, void 0, function* () {
3551
- if (!tag) {
3552
- throw new Error("invalid tag");
3553
- }
3554
- const { span, updatedOptions } = createSpan("RegistryArtifact-deleteTag", options);
3555
- try {
3556
- yield this.client.containerRegistry.deleteTag(this.repositoryName, tag, updatedOptions);
3557
- }
3558
- catch (e) {
3559
- span.setStatus({ code: coreTracing.SpanStatusCode.ERROR, message: e.message });
3560
- throw e;
3561
- }
3562
- finally {
3563
- span.end();
3564
- }
3565
- });
3625
+ async deleteTag(tag, options = {}) {
3626
+ if (!tag) {
3627
+ throw new Error("invalid tag");
3628
+ }
3629
+ const { span, updatedOptions } = createSpan("RegistryArtifact-deleteTag", options);
3630
+ try {
3631
+ await this.client.containerRegistry.deleteTag(this.repositoryName, tag, updatedOptions);
3632
+ }
3633
+ catch (e) {
3634
+ span.setStatus({ code: coreTracing.SpanStatusCode.ERROR, message: e.message });
3635
+ throw e;
3636
+ }
3637
+ finally {
3638
+ span.end();
3639
+ }
3566
3640
  }
3567
3641
  /**
3568
- * Retrieves properties of this registry artifact.
3642
+ * Retrieves the properties of the manifest that uniquely identifies this artifact.
3569
3643
  * @param options -
3570
3644
  */
3571
- getManifestProperties(options = {}) {
3572
- return tslib.__awaiter(this, void 0, void 0, function* () {
3573
- const { span, updatedOptions } = createSpan("RegistryArtifact-getManifestProperties", options);
3574
- try {
3575
- const result = yield this.client.containerRegistry.getManifestProperties(this.repositoryName, yield this.getDigest(), updatedOptions);
3576
- return toArtifactManifestProperties(result, this.repositoryName, result.registryLoginServer);
3577
- }
3578
- catch (e) {
3579
- span.setStatus({ code: coreTracing.SpanStatusCode.ERROR, message: e.message });
3580
- throw e;
3581
- }
3582
- finally {
3583
- span.end();
3584
- }
3585
- });
3645
+ async getManifestProperties(options = {}) {
3646
+ const { span, updatedOptions } = createSpan("RegistryArtifact-getManifestProperties", options);
3647
+ try {
3648
+ const result = await this.client.containerRegistry.getManifestProperties(this.repositoryName, await this.getDigest(), updatedOptions);
3649
+ return toArtifactManifestProperties(result, this.repositoryName, result.registryLoginServer);
3650
+ }
3651
+ catch (e) {
3652
+ span.setStatus({ code: coreTracing.SpanStatusCode.ERROR, message: e.message });
3653
+ throw e;
3654
+ }
3655
+ finally {
3656
+ span.end();
3657
+ }
3586
3658
  }
3587
3659
  /**
3588
- * Updates manifest artifact attributes.
3660
+ * Updates the properties of the artifact's manifest.
3661
+ *
3662
+ * Example usage:
3663
+ *
3664
+ * ```javascript
3665
+ * const client = new ContainerRegistryClient(url, credential);
3666
+ * const artifact = client.getArtifact(repositoryName, artifactTagOrDigest)
3667
+ * const updated = await artifact.updateManifestProperties({
3668
+ * canDelete: false,
3669
+ * canList: false,
3670
+ * canRead: false,
3671
+ * canWrite: false
3672
+ * });
3673
+ * ```
3589
3674
  * @param options -
3590
3675
  */
3591
- updateManifestProperties(options = {}) {
3592
- return tslib.__awaiter(this, void 0, void 0, function* () {
3593
- const { span, updatedOptions } = createSpan("RegistryArtifact-updateManifestProperties", Object.assign(Object.assign({}, options), { value: {
3594
- canDelete: options.canDelete,
3595
- canWrite: options.canWrite,
3596
- canList: options.canList,
3597
- canRead: options.canRead
3598
- } }));
3599
- try {
3600
- const result = yield this.client.containerRegistry.updateManifestProperties(this.repositoryName, yield this.getDigest(), updatedOptions);
3601
- return toArtifactManifestProperties(result, this.repositoryName, result.registryLoginServer);
3602
- }
3603
- catch (e) {
3604
- span.setStatus({ code: coreTracing.SpanStatusCode.ERROR, message: e.message });
3605
- throw e;
3606
- }
3607
- finally {
3608
- span.end();
3609
- }
3610
- });
3676
+ async updateManifestProperties(options) {
3677
+ const { span, updatedOptions } = createSpan("RegistryArtifact-updateManifestProperties", Object.assign(Object.assign({}, options), { value: {
3678
+ canDelete: options.canDelete,
3679
+ canWrite: options.canWrite,
3680
+ canList: options.canList,
3681
+ canRead: options.canRead,
3682
+ } }));
3683
+ try {
3684
+ const result = await this.client.containerRegistry.updateManifestProperties(this.repositoryName, await this.getDigest(), updatedOptions);
3685
+ return toArtifactManifestProperties(result, this.repositoryName, result.registryLoginServer);
3686
+ }
3687
+ catch (e) {
3688
+ span.setStatus({ code: coreTracing.SpanStatusCode.ERROR, message: e.message });
3689
+ throw e;
3690
+ }
3691
+ finally {
3692
+ span.end();
3693
+ }
3611
3694
  }
3612
3695
  /**
3613
- * Retrieves properties of a tag.
3696
+ * Retrieves the properties of the specified tag.
3614
3697
  * @param tag - the tag to retrieve properties.
3615
3698
  * @param options -
3616
3699
  */
3617
- getTagProperties(tag, options = {}) {
3618
- return tslib.__awaiter(this, void 0, void 0, function* () {
3619
- if (!tag) {
3620
- throw new Error("invalid tag");
3621
- }
3622
- const { span, updatedOptions } = createSpan("RegistryArtifact-getTagProperties", options);
3623
- try {
3624
- return yield this.client.containerRegistry.getTagProperties(this.repositoryName, tag, updatedOptions);
3625
- }
3626
- catch (e) {
3627
- span.setStatus({ code: coreTracing.SpanStatusCode.ERROR, message: e.message });
3628
- throw e;
3629
- }
3630
- finally {
3631
- span.end();
3632
- }
3633
- });
3700
+ async getTagProperties(tag, options = {}) {
3701
+ if (!tag) {
3702
+ throw new Error("invalid tag");
3703
+ }
3704
+ const { span, updatedOptions } = createSpan("RegistryArtifact-getTagProperties", options);
3705
+ try {
3706
+ return await this.client.containerRegistry.getTagProperties(this.repositoryName, tag, updatedOptions);
3707
+ }
3708
+ catch (e) {
3709
+ span.setStatus({ code: coreTracing.SpanStatusCode.ERROR, message: e.message });
3710
+ throw e;
3711
+ }
3712
+ finally {
3713
+ span.end();
3714
+ }
3634
3715
  }
3635
3716
  /**
3636
- * Updates tag properties.
3637
- * @param tag - name of the tag
3717
+ * Updates the properties of a given tag.
3718
+ *
3719
+ * Example usage:
3720
+ *
3721
+ * ```javascript
3722
+ * const client = new ContainerRegistryClient(url, credential);
3723
+ * const artifact = client.getArtifact(repositoryName, artifactTagOrDigest)
3724
+ * const updated = await artifact.updateTagProperties(tag, {
3725
+ * canDelete: false,
3726
+ * canList: false,
3727
+ * canRead: false,
3728
+ * canWrite: false
3729
+ * });
3730
+ * ```
3731
+ * @param tag - name of the tag to update properties on
3638
3732
  * @param options -
3639
3733
  */
3640
- updateTagProperties(tag, options) {
3641
- return tslib.__awaiter(this, void 0, void 0, function* () {
3642
- if (!tag) {
3643
- throw new Error("invalid tag");
3644
- }
3645
- const { span, updatedOptions } = createSpan("RegistryArtifact-updateTagProperties", Object.assign(Object.assign({}, options), { value: {
3646
- canDelete: options.canDelete,
3647
- canWrite: options.canWrite,
3648
- canList: options.canList,
3649
- canRead: options.canRead
3650
- } }));
3651
- try {
3652
- return yield this.client.containerRegistry.updateTagAttributes(this.repositoryName, tag, updatedOptions);
3653
- }
3654
- catch (e) {
3655
- span.setStatus({ code: coreTracing.SpanStatusCode.ERROR, message: e.message });
3656
- throw e;
3657
- }
3658
- finally {
3659
- span.end();
3660
- }
3661
- });
3734
+ async updateTagProperties(tag, options) {
3735
+ if (!tag) {
3736
+ throw new Error("invalid tag");
3737
+ }
3738
+ const { span, updatedOptions } = createSpan("RegistryArtifact-updateTagProperties", Object.assign(Object.assign({}, options), { value: {
3739
+ canDelete: options.canDelete,
3740
+ canWrite: options.canWrite,
3741
+ canList: options.canList,
3742
+ canRead: options.canRead,
3743
+ } }));
3744
+ try {
3745
+ return await this.client.containerRegistry.updateTagAttributes(this.repositoryName, tag, updatedOptions);
3746
+ }
3747
+ catch (e) {
3748
+ span.setStatus({ code: coreTracing.SpanStatusCode.ERROR, message: e.message });
3749
+ throw e;
3750
+ }
3751
+ finally {
3752
+ span.end();
3753
+ }
3662
3754
  }
3663
3755
  /**
3664
- * Iterates tags.
3756
+ * Returns an async iterable iterator to list the tags that uniquely identify this artifact and the properties of each.
3665
3757
  *
3666
- * Example usage:
3667
- * ```ts
3758
+ * Example using `for-await-of` syntax:
3759
+ *
3760
+ * ```javascript
3668
3761
  * const client = new ContainerRegistryClient(url, credentials);
3669
3762
  * const repository = client.getRepository(repositoryName);
3670
3763
  * const artifact = repository.getArtifact(digest)
@@ -3672,6 +3765,34 @@ class RegistryArtifactImpl {
3672
3765
  * console.log("tag: ", tag);
3673
3766
  * }
3674
3767
  * ```
3768
+ *
3769
+ * Example using `iter.next()`:
3770
+ *
3771
+ * ```javascript
3772
+ * const iter = artifact.listTagProperties();
3773
+ * let item = await iter.next();
3774
+ * while (!item.done) {
3775
+ * console.log("tag properties: ", item.value);
3776
+ * item = await iter.next();
3777
+ * }
3778
+ * ```
3779
+ *
3780
+ * Example using `byPage()`:
3781
+ *
3782
+ * ```javascript
3783
+ * const pages = artifact.listTagProperties().byPage({ maxPageSize: 2 });
3784
+ * let page = await pages.next();
3785
+ * let i = 1;
3786
+ * while (!page.done) {
3787
+ * if (page.value) {
3788
+ * console.log(`-- page ${i++}`);
3789
+ * for (const tagProperties of page.value) {
3790
+ * console.log(` repository name: ${tagProperties}`);
3791
+ * }
3792
+ * }
3793
+ * page = await pages.next();
3794
+ * }
3795
+ * ```
3675
3796
  * @param options -
3676
3797
  */
3677
3798
  listTagProperties(options = {}) {
@@ -3683,7 +3804,7 @@ class RegistryArtifactImpl {
3683
3804
  [Symbol.asyncIterator]() {
3684
3805
  return this;
3685
3806
  },
3686
- byPage: (settings = {}) => this.listTagsPage(settings, options)
3807
+ byPage: (settings = {}) => this.listTagsPage(settings, options),
3687
3808
  };
3688
3809
  }
3689
3810
  listTagsItems(options = {}) {
@@ -3706,7 +3827,7 @@ class RegistryArtifactImpl {
3706
3827
  }
3707
3828
  listTagsPage(continuationState, options = {}) {
3708
3829
  return tslib.__asyncGenerator(this, arguments, function* listTagsPage_1() {
3709
- const orderby = toServiceTagOrderBy(options.orderBy);
3830
+ const orderby = toServiceTagOrderBy(options.order);
3710
3831
  if (!continuationState.continuationToken) {
3711
3832
  const optionsComplete = Object.assign(Object.assign({}, options), { n: continuationState.maxPageSize, orderby });
3712
3833
  const currentPage = yield tslib.__await(this.client.containerRegistry.getTags(this.repositoryName, optionsComplete));
@@ -3717,7 +3838,7 @@ class RegistryArtifactImpl {
3717
3838
  });
3718
3839
  yield yield tslib.__await(Object.defineProperty(array, "continuationToken", {
3719
3840
  value: continuationState.continuationToken,
3720
- enumerable: true
3841
+ enumerable: true,
3721
3842
  }));
3722
3843
  }
3723
3844
  }
@@ -3730,7 +3851,7 @@ class RegistryArtifactImpl {
3730
3851
  });
3731
3852
  yield yield tslib.__await(Object.defineProperty(array, "continuationToken", {
3732
3853
  value: continuationState.continuationToken,
3733
- enumerable: true
3854
+ enumerable: true,
3734
3855
  }));
3735
3856
  }
3736
3857
  }
@@ -3756,27 +3877,25 @@ class ContainerRepositoryImpl {
3756
3877
  this.client = client;
3757
3878
  }
3758
3879
  /**
3759
- * Deletes this repository.
3880
+ * Deletes this repository and all artifacts that are part of its logical group.
3760
3881
  *
3761
3882
  * @param options - optional configuration for the operation
3762
3883
  */
3763
- delete(options = {}) {
3764
- return tslib.__awaiter(this, void 0, void 0, function* () {
3765
- const { span, updatedOptions } = createSpan("ContainerRepository-delete", options);
3766
- try {
3767
- yield this.client.containerRegistry.deleteRepository(this.name, updatedOptions);
3768
- }
3769
- catch (e) {
3770
- span.setStatus({ code: coreTracing.SpanStatusCode.ERROR, message: e.message });
3771
- throw e;
3772
- }
3773
- finally {
3774
- span.end();
3775
- }
3776
- });
3884
+ async delete(options = {}) {
3885
+ const { span, updatedOptions } = createSpan("ContainerRepository-delete", options);
3886
+ try {
3887
+ await this.client.containerRegistry.deleteRepository(this.name, updatedOptions);
3888
+ }
3889
+ catch (e) {
3890
+ span.setStatus({ code: coreTracing.SpanStatusCode.ERROR, message: e.message });
3891
+ throw e;
3892
+ }
3893
+ finally {
3894
+ span.end();
3895
+ }
3777
3896
  }
3778
3897
  /**
3779
- * Returns an instance of RegistryArtifact.
3898
+ * Returns an helper instance of {@link RegistryArtifact} for the given tag or digest.
3780
3899
  * @param tagOrDigest - the tag or digest of the artifact
3781
3900
  */
3782
3901
  getArtifact(tagOrDigest) {
@@ -3786,61 +3905,100 @@ class ContainerRepositoryImpl {
3786
3905
  return new RegistryArtifactImpl(this.registryEndpoint, this.name, tagOrDigest, this.client);
3787
3906
  }
3788
3907
  /**
3789
- * Retrieves properties of this repository.
3908
+ * Retrieves the properties of this repository.
3790
3909
  * @param options -
3791
3910
  */
3792
- getProperties(options = {}) {
3793
- return tslib.__awaiter(this, void 0, void 0, function* () {
3794
- const { span, updatedOptions } = createSpan("ContainerRepository-getProperties", options);
3795
- try {
3796
- return yield this.client.containerRegistry.getProperties(this.name, updatedOptions);
3797
- }
3798
- catch (e) {
3799
- span.setStatus({ code: coreTracing.SpanStatusCode.ERROR, message: e.message });
3800
- throw e;
3801
- }
3802
- finally {
3803
- span.end();
3804
- }
3805
- });
3911
+ async getProperties(options = {}) {
3912
+ const { span, updatedOptions } = createSpan("ContainerRepository-getProperties", options);
3913
+ try {
3914
+ return await this.client.containerRegistry.getProperties(this.name, updatedOptions);
3915
+ }
3916
+ catch (e) {
3917
+ span.setStatus({ code: coreTracing.SpanStatusCode.ERROR, message: e.message });
3918
+ throw e;
3919
+ }
3920
+ finally {
3921
+ span.end();
3922
+ }
3806
3923
  }
3807
3924
  /**
3808
- * Updates repository attributes.
3925
+ * Updates the properties of this repository.
3926
+ *
3927
+ * Example usage:
3928
+ *
3929
+ * ```javascript
3930
+ * const client = new ContainerRegistryClient(url, credential);
3931
+ * const repository = client.getRepository(repositoryName)
3932
+ * const updated = await repository.updateProperties({
3933
+ * canDelete: false,
3934
+ * canList: false,
3935
+ * canRead: false,
3936
+ * canWrite: false
3937
+ * });
3938
+ * ```
3809
3939
  * @param options -
3810
3940
  */
3811
- updateProperties(options) {
3812
- return tslib.__awaiter(this, void 0, void 0, function* () {
3813
- const value = {
3814
- canDelete: options.canDelete,
3815
- canWrite: options.canWrite,
3816
- canList: options.canList,
3817
- canRead: options.canRead,
3818
- teleportEnabled: options.teleportEnabled
3819
- };
3820
- const { span, updatedOptions } = createSpan("ContainerRepository-updateProperties", Object.assign(Object.assign({}, options), { value }));
3821
- try {
3822
- return yield this.client.containerRegistry.updateProperties(this.name, updatedOptions);
3823
- }
3824
- catch (e) {
3825
- span.setStatus({ code: coreTracing.SpanStatusCode.ERROR, message: e.message });
3826
- throw e;
3827
- }
3828
- finally {
3829
- span.end();
3830
- }
3831
- });
3941
+ async updateProperties(options) {
3942
+ const value = {
3943
+ canDelete: options.canDelete,
3944
+ canWrite: options.canWrite,
3945
+ canList: options.canList,
3946
+ canRead: options.canRead,
3947
+ };
3948
+ const { span, updatedOptions } = createSpan("ContainerRepository-updateProperties", Object.assign(Object.assign({}, options), { value }));
3949
+ try {
3950
+ return await this.client.containerRegistry.updateProperties(this.name, updatedOptions);
3951
+ }
3952
+ catch (e) {
3953
+ span.setStatus({ code: coreTracing.SpanStatusCode.ERROR, message: e.message });
3954
+ throw e;
3955
+ }
3956
+ finally {
3957
+ span.end();
3958
+ }
3832
3959
  }
3833
3960
  /**
3834
- * Iterates manifests.
3961
+ * Returns an async iterable iterator to list manifest properties.
3962
+ * This is useful for determining the collection of artifacts associated with
3963
+ * this repository, as each artifact is uniquely identified by its manifest.
3835
3964
  *
3836
- * Example usage:
3837
- * ```ts
3838
- * const client = new ContainerRegistryClient(url, credentials);
3965
+ * Example using `for-await-of` syntax:
3966
+ *
3967
+ * ```javascript
3968
+ * const client = new ContainerRegistryClient(url, credential);
3839
3969
  * const repository = client.getRepository(repositoryName)
3840
3970
  * for await (const manifest of repository.listManifestProperties()) {
3841
3971
  * console.log("manifest: ", manifest);
3842
3972
  * }
3843
3973
  * ```
3974
+ *
3975
+ * Example using `iter.next()`:
3976
+ *
3977
+ * ```javascript
3978
+ * const iter = repository.listManifestProperties();
3979
+ * let item = await iter.next();
3980
+ * while (!item.done) {
3981
+ * console.log("manifest properties: ", item.value);
3982
+ * item = await iter.next();
3983
+ * }
3984
+ * ```
3985
+ *
3986
+ * Example using `byPage()`:
3987
+ *
3988
+ * ```javascript
3989
+ * const pages = repository.listManifestProperties().byPage({ maxPageSize: 2 });
3990
+ * let page = await pages.next();
3991
+ * let i = 1;
3992
+ * while (!page.done) {
3993
+ * if (page.value) {
3994
+ * console.log(`-- page ${i++}`);
3995
+ * for (const manifestProperties of page.value) {
3996
+ * console.log(` manifest properties: ${manifestProperties}`);
3997
+ * }
3998
+ * }
3999
+ * page = await pages.next();
4000
+ * }
4001
+ * ```
3844
4002
  * @param options -
3845
4003
  */
3846
4004
  listManifestProperties(options = {}) {
@@ -3852,7 +4010,7 @@ class ContainerRepositoryImpl {
3852
4010
  [Symbol.asyncIterator]() {
3853
4011
  return this;
3854
4012
  },
3855
- byPage: (settings = {}) => this.listManifestsPage(settings, options)
4013
+ byPage: (settings = {}) => this.listManifestsPage(settings, options),
3856
4014
  };
3857
4015
  }
3858
4016
  listManifestsItems(options = {}) {
@@ -3875,7 +4033,7 @@ class ContainerRepositoryImpl {
3875
4033
  }
3876
4034
  listManifestsPage(continuationState, options = {}) {
3877
4035
  return tslib.__asyncGenerator(this, arguments, function* listManifestsPage_1() {
3878
- const orderby = toServiceManifestOrderBy(options.orderBy);
4036
+ const orderby = toServiceManifestOrderBy(options.order);
3879
4037
  if (!continuationState.continuationToken) {
3880
4038
  const optionsComplete = Object.assign(Object.assign({}, options), { n: continuationState.maxPageSize, orderby });
3881
4039
  const currentPage = yield tslib.__await(this.client.containerRegistry.getManifests(this.name, optionsComplete));
@@ -3884,7 +4042,7 @@ class ContainerRepositoryImpl {
3884
4042
  const array = currentPage.manifests.map((t) => toArtifactManifestProperties(t, this.name, currentPage.registryLoginServer));
3885
4043
  yield yield tslib.__await(Object.defineProperty(array, "continuationToken", {
3886
4044
  value: continuationState.continuationToken,
3887
- enumerable: true
4045
+ enumerable: true,
3888
4046
  }));
3889
4047
  }
3890
4048
  }
@@ -3895,7 +4053,7 @@ class ContainerRepositoryImpl {
3895
4053
  const array = currentPage.manifests.map((t) => toArtifactManifestProperties(t, this.name, currentPage.registryLoginServer));
3896
4054
  yield yield tslib.__await(Object.defineProperty(array, "continuationToken", {
3897
4055
  value: continuationState.continuationToken,
3898
- enumerable: true
4056
+ enumerable: true,
3899
4057
  }));
3900
4058
  }
3901
4059
  }
@@ -3924,138 +4082,56 @@ class ContainerRegistryRefreshTokenCredential {
3924
4082
  this.tokenService = new ContainerRegistryTokenService(authClient);
3925
4083
  this.isAnonymousAccess = !this.credential;
3926
4084
  }
3927
- getToken(_scopes, options) {
3928
- return tslib.__awaiter(this, void 0, void 0, function* () {
3929
- if (!this.credential) {
3930
- return null;
3931
- }
3932
- const aadToken = yield this.credential.getToken(this.authenticationScope, options);
3933
- if (!aadToken) {
3934
- throw new Error("Failed to retrieve AAD token.");
3935
- }
3936
- return this.tokenService.ExchangeAadAccessTokenForAcrRefreshTokenAsync(aadToken.token, options.service, options);
3937
- });
3938
- }
3939
- }
3940
- const customExchangeAadTokenForAcrRefreshTokenOperationSpec = {
3941
- path: "/oauth2/exchange",
3942
- httpMethod: "POST",
3943
- responses: {
3944
- 200: {
3945
- bodyMapper: AcrRefreshToken
3946
- },
3947
- default: {
3948
- bodyMapper: AcrErrors
3949
- }
3950
- },
3951
- // formDataParameters: [Parameters.aadAccesstoken],
3952
- requestBody: {
3953
- parameterPath: ["options", "payload"],
3954
- mapper: {
3955
- type: {
3956
- name: "Stream"
3957
- }
4085
+ async getToken(_scopes, options) {
4086
+ if (!this.credential) {
4087
+ return null;
3958
4088
  }
3959
- },
3960
- urlParameters: [url],
3961
- headerParameters: [contentType3, accept4],
3962
- serializer: coreClient.createSerializer(Mappers, /* isXml */ false)
3963
- };
3964
- const customExchangeAcrRefreshTokenForAcrAccessTokenOperationSpec = {
3965
- path: "/oauth2/token",
3966
- httpMethod: "POST",
3967
- responses: {
3968
- 200: {
3969
- bodyMapper: AcrAccessToken
3970
- },
3971
- default: {
3972
- bodyMapper: AcrErrors
4089
+ const aadToken = await this.credential.getToken(this.authenticationScope, options);
4090
+ if (!aadToken) {
4091
+ throw new Error("Failed to retrieve AAD token.");
3973
4092
  }
3974
- },
3975
- // formDataParameters: [Parameters.acrRefreshToken],
3976
- requestBody: {
3977
- parameterPath: ["options", "payload"],
3978
- mapper: {
3979
- type: {
3980
- name: "Stream"
3981
- }
3982
- }
3983
- },
3984
- urlParameters: [url],
3985
- headerParameters: [contentType3, accept4],
3986
- serializer: coreClient.createSerializer(Mappers, /* isXml */ false)
3987
- };
4093
+ return this.tokenService.ExchangeAadAccessTokenForAcrRefreshTokenAsync(aadToken.token, options.service, options);
4094
+ }
4095
+ }
3988
4096
  class ContainerRegistryTokenService {
3989
4097
  constructor(authClient) {
3990
4098
  this.authClient = authClient;
3991
4099
  }
3992
- ExchangeAadAccessTokenForAcrRefreshTokenAsync(aadAccessToken, service, options) {
3993
- return tslib.__awaiter(this, void 0, void 0, function* () {
3994
- // const acrRefreshToken = await this.authClient.authentication.exchangeAadTokenForAcrRefreshToken(
3995
- // {
3996
- // aadAccesstoken: {
3997
- // grantType: "access_token",
3998
- // service,
3999
- // aadAccesstoken: aadAccessToken,
4000
- // }
4001
- // }
4002
- // );
4003
- // TODO: (jeremymeng) revert custom sendOperationRequest call after FormData is working in core
4004
- const payload = `grant_type=access_token&service=${encodeURIComponent(service)}&access_token=${encodeURIComponent(aadAccessToken)}`;
4005
- const customOptions = {
4006
- payload
4007
- };
4008
- const acrRefreshToken = yield this.authClient.sendOperationRequest({ options: Object.assign(Object.assign({}, options), customOptions) }, customExchangeAadTokenForAcrRefreshTokenOperationSpec);
4009
- if (!acrRefreshToken.refreshToken) {
4010
- throw new Error("Failed to exchange AAD access token for an ACR refresh token.");
4011
- }
4012
- // ACR refresh token expires after three hours
4013
- const jwtParts = acrRefreshToken.refreshToken.split(".");
4014
- if (jwtParts.length < 3) {
4015
- throw new Error("Invalid JWT structure from ACR refresh token.");
4016
- }
4017
- if (!jwtParts[1]) {
4018
- throw new Error("Invalid JWT payload.");
4019
- }
4020
- const jwtPayload = JSON.parse(base64decode(jwtParts[1]));
4021
- if (!jwtPayload.exp) {
4022
- throw new Error("Invalid JWT payload structure. No expiration.");
4023
- }
4024
- // JWT expiry is in seconds
4025
- const expiry = Number.parseInt(jwtPayload.exp) * 1000;
4026
- return {
4027
- token: acrRefreshToken.refreshToken,
4028
- expiresOnTimestamp: expiry
4029
- };
4030
- });
4100
+ async ExchangeAadAccessTokenForAcrRefreshTokenAsync(aadAccessToken, service, options) {
4101
+ const acrRefreshToken = await this.authClient.authentication.exchangeAadAccessTokenForAcrRefreshToken("access_token", service, Object.assign(Object.assign({}, options), { accessToken: aadAccessToken }));
4102
+ if (!acrRefreshToken.refreshToken) {
4103
+ throw new Error("Failed to exchange AAD access token for an ACR refresh token.");
4104
+ }
4105
+ // ACR refresh token expires after three hours
4106
+ const jwtParts = acrRefreshToken.refreshToken.split(".");
4107
+ if (jwtParts.length < 3) {
4108
+ throw new Error("Invalid JWT structure from ACR refresh token.");
4109
+ }
4110
+ if (!jwtParts[1]) {
4111
+ throw new Error("Invalid JWT payload.");
4112
+ }
4113
+ const jwtPayload = JSON.parse(base64decode(jwtParts[1]));
4114
+ if (!jwtPayload.exp) {
4115
+ throw new Error("Invalid JWT payload structure. No expiration.");
4116
+ }
4117
+ // JWT expiry is in seconds
4118
+ const expiry = Number.parseInt(jwtPayload.exp) * 1000;
4119
+ return {
4120
+ token: acrRefreshToken.refreshToken,
4121
+ expiresOnTimestamp: expiry,
4122
+ };
4031
4123
  }
4032
- ExchangeAcrRefreshTokenForAcrAccessTokenAsync(acrRefreshToken, service, scope, grantType, options) {
4033
- return tslib.__awaiter(this, void 0, void 0, function* () {
4034
- // const acrAccessToken = await this.authClient.authentication.exchangeAcrRefreshTokenForAcrAccessToken(
4035
- // {
4036
- // acrRefreshToken: {
4037
- // grantType: "refresh_token",
4038
- // acrRefreshToken,
4039
- // service,
4040
- // scope
4041
- // }
4042
- // }
4043
- // );
4044
- // TODO: (jeremymeng) revert custom sendOperationRequest call after FormData is working in core
4045
- const payload = `grant_type=${grantType}&service=${encodeURIComponent(service)}&refresh_token=${acrRefreshToken ? encodeURIComponent(acrRefreshToken) : ""}&scope=${encodeURIComponent(scope)}`;
4046
- const customOptions = {
4047
- payload
4048
- };
4049
- const acrAccessToken = yield this.authClient.sendOperationRequest({ options: Object.assign(Object.assign({}, options), customOptions) }, customExchangeAcrRefreshTokenForAcrAccessTokenOperationSpec);
4050
- if (!acrAccessToken.accessToken) {
4051
- throw new Error("Failed to exchange ACR refresh token for an ACR access token");
4052
- }
4053
- return acrAccessToken.accessToken;
4054
- });
4124
+ async ExchangeAcrRefreshTokenForAcrAccessTokenAsync(acrRefreshToken, service, scope, grantType, options) {
4125
+ const acrAccessToken = await this.authClient.authentication.exchangeAcrRefreshTokenForAcrAccessToken(service, scope, acrRefreshToken, grantType, options);
4126
+ if (!acrAccessToken.accessToken) {
4127
+ throw new Error("Failed to exchange ACR refresh token for an ACR access token");
4128
+ }
4129
+ return acrAccessToken.accessToken;
4055
4130
  }
4056
4131
  }
4057
4132
 
4058
4133
  // Copyright (c) Microsoft Corporation.
4134
+ const LATEST_API_VERSION = "2021-07-01";
4059
4135
  /**
4060
4136
  * The client class used to interact with the Container Registry service.
4061
4137
  */
@@ -4075,58 +4151,50 @@ class ContainerRegistryClient {
4075
4151
  else {
4076
4152
  options = credentialOrOptions !== null && credentialOrOptions !== void 0 ? credentialOrOptions : {};
4077
4153
  }
4078
- // The below code helps us set a proper User-Agent header on all requests
4079
- const libInfo = `azsdk-js-container-registry/${SDK_VERSION}`;
4080
- if (!options.userAgentOptions) {
4081
- options.userAgentOptions = {};
4082
- }
4083
- if (options.userAgentOptions.userAgentPrefix) {
4084
- options.userAgentOptions.userAgentPrefix = `${options.userAgentOptions.userAgentPrefix} ${libInfo}`;
4085
- }
4086
- else {
4087
- options.userAgentOptions.userAgentPrefix = libInfo;
4088
- }
4089
4154
  const internalPipelineOptions = Object.assign(Object.assign({}, options), { loggingOptions: {
4090
4155
  logger: logger.info,
4091
4156
  // This array contains header names we want to log that are not already
4092
4157
  // included as safe. Unknown/unsafe headers are logged as "<REDACTED>".
4093
- additionalAllowedQueryParameters: ["last", "n", "orderby", "digest"]
4158
+ additionalAllowedQueryParameters: ["last", "n", "orderby", "digest"],
4094
4159
  } });
4095
- const authScope = (_a = options.authenticationScope) !== null && _a !== void 0 ? _a : "https://management.azure.com/.default";
4096
- const authClient = new GeneratedClient(endpoint, internalPipelineOptions);
4097
- this.client = new GeneratedClient(endpoint, internalPipelineOptions);
4160
+ // Require audience now until we have a default ACR audience from the service.
4161
+ if (!options.audience) {
4162
+ throw new Error("ContainerRegistryClientOptions.audience must be set to initialize ContainerRegistryClient.");
4163
+ }
4164
+ const defaultScope = `${options.audience}/.default`;
4165
+ const serviceVersion = (_a = options.serviceVersion) !== null && _a !== void 0 ? _a : LATEST_API_VERSION;
4166
+ const authClient = new GeneratedClient(endpoint, serviceVersion, internalPipelineOptions);
4167
+ this.client = new GeneratedClient(endpoint, serviceVersion, internalPipelineOptions);
4098
4168
  this.client.pipeline.addPolicy(coreRestPipeline.bearerTokenAuthenticationPolicy({
4099
4169
  credential,
4100
- scopes: [authScope],
4101
- challengeCallbacks: new ChallengeHandler(new ContainerRegistryRefreshTokenCredential(authClient, authScope, credential))
4170
+ scopes: [defaultScope],
4171
+ challengeCallbacks: new ChallengeHandler(new ContainerRegistryRefreshTokenCredential(authClient, defaultScope, credential)),
4102
4172
  }));
4103
4173
  }
4104
4174
  /**
4105
- * Deletes the repository identified by the given name.
4175
+ * Deletes the repository identified by the given name and all associated artifacts.
4106
4176
  *
4107
4177
  * @param repositoryName - the name of repository to delete
4108
4178
  * @param options - optional configuration for the operation
4109
4179
  */
4110
- deleteRepository(repositoryName, options = {}) {
4111
- return tslib.__awaiter(this, void 0, void 0, function* () {
4112
- if (!repositoryName) {
4113
- throw new Error("invalid repositoryName");
4114
- }
4115
- const { span, updatedOptions } = createSpan("ContainerRegistryClient-deleteRepository", options);
4116
- try {
4117
- yield this.client.containerRegistry.deleteRepository(repositoryName, updatedOptions);
4118
- }
4119
- catch (e) {
4120
- span.setStatus({ code: coreTracing.SpanStatusCode.ERROR, message: e.message });
4121
- throw e;
4122
- }
4123
- finally {
4124
- span.end();
4125
- }
4126
- });
4180
+ async deleteRepository(repositoryName, options = {}) {
4181
+ if (!repositoryName) {
4182
+ throw new Error("invalid repositoryName");
4183
+ }
4184
+ const { span, updatedOptions } = createSpan("ContainerRegistryClient-deleteRepository", options);
4185
+ try {
4186
+ await this.client.containerRegistry.deleteRepository(repositoryName, updatedOptions);
4187
+ }
4188
+ catch (e) {
4189
+ span.setStatus({ code: coreTracing.SpanStatusCode.ERROR, message: e.message });
4190
+ throw e;
4191
+ }
4192
+ finally {
4193
+ span.end();
4194
+ }
4127
4195
  }
4128
4196
  /**
4129
- * Returns an artifact for given repository name, and a tag or digest.
4197
+ * Returns an instance of {@link RegistryArtifact} for calling service methods related to the artifact specified by `repositoryName` and `tagOrDigest`.
4130
4198
  *
4131
4199
  * @param repositoryName - the name of repository
4132
4200
  * @param tagOrDigest - tag or digest of the artifact to retrieve
@@ -4141,10 +4209,9 @@ class ContainerRegistryClient {
4141
4209
  return new ContainerRepositoryImpl(this.endpoint, repositoryName, this.client).getArtifact(tagOrDigest);
4142
4210
  }
4143
4211
  /**
4144
- * Returns a ContainerRepositoryClient instance for the given repository.
4212
+ * Returns an instance of {@link ContainerRepository} for calling service methods related to the repository specified by `repositoryName`.
4145
4213
  *
4146
- * @param repositoryName - the name of repository to delete
4147
- * @param options - optional configuration for the operation
4214
+ * @param repositoryName - the name of repository
4148
4215
  */
4149
4216
  getRepository(repositoryName) {
4150
4217
  if (!repositoryName) {
@@ -4153,15 +4220,43 @@ class ContainerRegistryClient {
4153
4220
  return new ContainerRepositoryImpl(this.endpoint, repositoryName, this.client);
4154
4221
  }
4155
4222
  /**
4156
- * Iterates repositories.
4223
+ * Returns an async iterable iterator to list names of repositories in this registry.
4157
4224
  *
4158
4225
  * Example usage:
4159
- * ```ts
4160
- * let client = new ContainerRegistryClient(url, credentials);
4226
+ * ```javascript
4227
+ * let client = new ContainerRegistryClient(url, credential);
4161
4228
  * for await (const repository of client.listRepositoryNames()) {
4162
4229
  * console.log("repository name: ", repository);
4163
4230
  * }
4164
4231
  * ```
4232
+ *
4233
+ * Example using `iter.next()`:
4234
+ *
4235
+ * ```javascript
4236
+ * let iter = client.listRepositoryNames();
4237
+ * let item = await iter.next();
4238
+ * while (!item.done) {
4239
+ * console.log(`repository name: ${item.value}`);
4240
+ * item = await iter.next();
4241
+ * }
4242
+ * ```
4243
+ *
4244
+ * Example using `byPage()`:
4245
+ *
4246
+ * ```javascript
4247
+ * const pages = client.listRepositoryNames().byPage({ maxPageSize: 2 });
4248
+ * let page = await pages.next();
4249
+ * let i = 1;
4250
+ * while (!page.done) {
4251
+ * if (page.value) {
4252
+ * console.log(`-- page ${i++}`);
4253
+ * for (const name of page.value) {
4254
+ * console.log(` repository name: ${name}`);
4255
+ * }
4256
+ * }
4257
+ * page = await pages.next();
4258
+ * }
4259
+ * ```
4165
4260
  * @param options -
4166
4261
  */
4167
4262
  listRepositoryNames(options = {}) {
@@ -4173,7 +4268,7 @@ class ContainerRegistryClient {
4173
4268
  [Symbol.asyncIterator]() {
4174
4269
  return this;
4175
4270
  },
4176
- byPage: (settings = {}) => this.listRepositoriesPage(settings, options)
4271
+ byPage: (settings = {}) => this.listRepositoriesPage(settings, options),
4177
4272
  };
4178
4273
  }
4179
4274
  listRepositoryItems(options = {}) {
@@ -4204,7 +4299,7 @@ class ContainerRegistryClient {
4204
4299
  const array = currentPage.repositories;
4205
4300
  yield yield tslib.__await(Object.defineProperty(array, "continuationToken", {
4206
4301
  value: continuationState.continuationToken,
4207
- enumerable: true
4302
+ enumerable: true,
4208
4303
  }));
4209
4304
  }
4210
4305
  }
@@ -4215,7 +4310,7 @@ class ContainerRegistryClient {
4215
4310
  const array = currentPage.repositories;
4216
4311
  yield yield tslib.__await(Object.defineProperty(array, "continuationToken", {
4217
4312
  value: continuationState.continuationToken,
4218
- enumerable: true
4313
+ enumerable: true,
4219
4314
  }));
4220
4315
  }
4221
4316
  }
@@ -4224,35 +4319,72 @@ class ContainerRegistryClient {
4224
4319
  }
4225
4320
 
4226
4321
  // Copyright (c) Microsoft Corporation.
4322
+ (function (KnownContainerRegistryAudience) {
4323
+ /** Azure China */
4324
+ KnownContainerRegistryAudience["AzureResourceManagerChina"] = "https://management.chinacloudapi.cn";
4325
+ /** Azure Gemany */
4326
+ KnownContainerRegistryAudience["AzureResourceManagerGermany"] = "https://management.microsoftazure.de";
4327
+ /** Azure Government */
4328
+ KnownContainerRegistryAudience["AzureResourceManagerGovernment"] = "https://management.usgovcloudapi.net";
4329
+ /** Azure Public Cloud */
4330
+ KnownContainerRegistryAudience["AzureResourceManagerPublicCloud"] = "https://management.azure.com";
4331
+ })(exports.KnownContainerRegistryAudience || (exports.KnownContainerRegistryAudience = {}));
4227
4332
  (function (KnownArtifactArchitecture) {
4333
+ /** i386 */
4228
4334
  KnownArtifactArchitecture["I386"] = "386";
4335
+ /** AMD64 */
4229
4336
  KnownArtifactArchitecture["Amd64"] = "amd64";
4337
+ /** ARM */
4230
4338
  KnownArtifactArchitecture["Arm"] = "arm";
4339
+ /** ARM64 */
4231
4340
  KnownArtifactArchitecture["Arm64"] = "arm64";
4341
+ /** MIPS */
4232
4342
  KnownArtifactArchitecture["Mips"] = "mips";
4343
+ /** MIPSLE */
4233
4344
  KnownArtifactArchitecture["MipsLe"] = "mipsle";
4345
+ /** MIPS64 */
4234
4346
  KnownArtifactArchitecture["Mips64"] = "mips64";
4347
+ /** MIPS64LE */
4235
4348
  KnownArtifactArchitecture["Mips64Le"] = "mips64le";
4349
+ /** PPC64 */
4236
4350
  KnownArtifactArchitecture["Ppc64"] = "ppc64";
4351
+ /** PPC64LE */
4237
4352
  KnownArtifactArchitecture["Ppc64Le"] = "ppc64le";
4353
+ /** RISCv64 */
4238
4354
  KnownArtifactArchitecture["RiscV64"] = "riscv64";
4355
+ /** s390x */
4239
4356
  KnownArtifactArchitecture["S390X"] = "s390x";
4357
+ /** Wasm */
4240
4358
  KnownArtifactArchitecture["Wasm"] = "wasm";
4241
4359
  })(exports.KnownArtifactArchitecture || (exports.KnownArtifactArchitecture = {}));
4242
4360
  (function (KnownArtifactOperatingSystem) {
4361
+ /** Aix */
4243
4362
  KnownArtifactOperatingSystem["Aix"] = "aix";
4363
+ /** Android */
4244
4364
  KnownArtifactOperatingSystem["Android"] = "android";
4365
+ /** Darwin */
4245
4366
  KnownArtifactOperatingSystem["Darwin"] = "darwin";
4367
+ /** Dragonfly */
4246
4368
  KnownArtifactOperatingSystem["Dragonfly"] = "dragonfly";
4369
+ /** FreeBSD */
4247
4370
  KnownArtifactOperatingSystem["FreeBsd"] = "freebsd";
4371
+ /** Illumos */
4248
4372
  KnownArtifactOperatingSystem["Illumos"] = "illumos";
4373
+ /** iOS */
4249
4374
  KnownArtifactOperatingSystem["iOS"] = "ios";
4375
+ /** JS */
4250
4376
  KnownArtifactOperatingSystem["JS"] = "js";
4377
+ /** Linux */
4251
4378
  KnownArtifactOperatingSystem["Linux"] = "linux";
4379
+ /** NetBSD */
4252
4380
  KnownArtifactOperatingSystem["NetBsd"] = "netbsd";
4381
+ /** OpenBSD */
4253
4382
  KnownArtifactOperatingSystem["OpenBsd"] = "openbsd";
4383
+ /** Plan9 */
4254
4384
  KnownArtifactOperatingSystem["Plan9"] = "plan9";
4385
+ /** Solaris */
4255
4386
  KnownArtifactOperatingSystem["Solaris"] = "solaris";
4387
+ /** Windows */
4256
4388
  KnownArtifactOperatingSystem["Windows"] = "windows";
4257
4389
  })(exports.KnownArtifactOperatingSystem || (exports.KnownArtifactOperatingSystem = {}));
4258
4390