postman-cli-completion 1.66.0 → 1.71.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.
@@ -1,6 +1,6 @@
1
1
  #compdef postman
2
2
  compdef _postman postman
3
- # Zsh completion for Postman CLI (postman v1.66.0)
3
+ # Zsh completion for Postman CLI (postman v1.71.0)
4
4
  # Auto-generated by scripts/generate.mjs — DO NOT EDIT
5
5
  # Source: spec/commands.json
6
6
  # https://github.com/yokawasa/postman-cli-completion
@@ -43,13 +43,14 @@ _postman() {
43
43
  sdk) _postman_sdk ;;
44
44
  mock) _postman_mock ;;
45
45
  application|app) _postman_application ;;
46
- simulate) _postman_simulate ;;
46
+ simulation) _postman_simulation ;;
47
47
  describe) _postman_describe ;;
48
48
  context-graph) _postman_context_graph ;;
49
49
  search) _postman_search ;;
50
50
  webhook) _postman_webhook ;;
51
51
  dataset) _postman_dataset ;;
52
52
  dependency) _postman_dependency ;;
53
+ secret) _postman_secret ;;
53
54
  esac
54
55
  ;;
55
56
  esac
@@ -68,7 +69,7 @@ _postman_commands() {
68
69
  'skills:Check and update the agent skills in this repository.'
69
70
  'collection:Run and test your Postman collections directly from the command line.'
70
71
  'environment:Work with local Postman environments from the command line. Also read cloud environments by ID.'
71
- 'globals:Work with local Postman globals from the command line.'
72
+ 'globals:Work with local Postman globals from the command line. Also read cloud globals by workspace.'
72
73
  'api:Publish and test your APIs directly from the command line'
73
74
  'runner:Where your monitors execute\: run and inspect your own self-hosted runners, and list the Postman-operated regions available to your team.'
74
75
  'spec:Lint and validate Specifications from the command line'
@@ -84,13 +85,14 @@ _postman_commands() {
84
85
  'mock:Create, run, and manage Postman mocks — in your repository or in Postman cloud.'
85
86
  'application:Application-level commands\: initialise config and run tests.'
86
87
  'app:Alias for application'
87
- 'simulate:Start mock servers with simulated failure scenarios.'
88
+ 'simulation:Create, run and manage simulations — serve several mocks behind one address.'
88
89
  'describe:\[Beta\] Get API context for AI coding agents directly from the command line.'
89
90
  'context-graph:Ask natural-language questions about your team'\''s Context Graph.'
90
91
  'search:Search for Postman element types (requests, collections, workspaces, and more).'
91
92
  'webhook:Create and manage Postman webhooks.'
92
93
  'dataset:Work with Postman datasets in local YAML files or the cloud.'
93
94
  'dependency:Manage workspace dependencies (Postman entities reused from other workspaces).'
95
+ 'secret:Create and manage Postman secrets in a team'\''s shared vault.'
94
96
  )
95
97
  _describe -t commands 'postman command' commands
96
98
  }
@@ -124,8 +126,8 @@ _postman_init() {
124
126
  '--no-fetch[Use the skills bundled with this CLI instead of fetching the latest]' \
125
127
  '--spec[Which spec is authoritative, when more than one could be]:path:_files -g "*.(yaml|yml|json)"' \
126
128
  '--visibility[Create and bind a workspace non-interactively (personal, team)]:status' \
127
- '--no-cloud[Skip the workspace step entirely]' \
128
- '--report-events[Send init analytics to Postman (requires login)]' \
129
+ '(-y --yes)'{-y,--yes}'[Accept the default for every question instead of asking or stopping]' \
130
+ '--report-events[Dispatch init events to the API Catalog and Application Inventory ingestion pipelines (requires login)]' \
129
131
  '(-h --help)'{-h,--help}'[display help for command]' \
130
132
  '*:path:_files -g "*.json"'
131
133
  }
@@ -209,10 +211,14 @@ _postman_collection() {
209
211
  lint) _postman_collection_lint ;;
210
212
  ai-readiness) _postman_collection_ai_readiness ;;
211
213
  get) _postman_collection_get ;;
214
+ delete) _postman_collection_delete ;;
215
+ publish) _postman_collection_publish ;;
212
216
  generate) _postman_collection_generate ;;
213
217
  sync) _postman_collection_sync ;;
214
218
  request) _postman_collection_request ;;
215
219
  folder) _postman_collection_folder ;;
220
+ example) _postman_collection_example ;;
221
+ import) _postman_collection_import ;;
216
222
  list) _postman_collection_list ;;
217
223
  run) _postman_collection_run ;;
218
224
  esac
@@ -228,10 +234,14 @@ _postman_collection_commands() {
228
234
  'lint:Run linting on a local v3 collection at the given file or directory path.'
229
235
  'ai-readiness:Score a Postman collection for AI readiness by ID, local file path, or local-mode directory.'
230
236
  'get:Fetch a Postman collection in the V3 format and print it.'
237
+ 'delete:Delete a cloud collection by id or a local collection directory by path. Prompts unless --yes is passed.'
238
+ 'publish:Publish a cloud collection'\''s documentation (or request Community Manager approval).'
231
239
  'generate:Generate artifacts from a collection.'
232
240
  'sync:Sync artifacts generated from a collection.'
233
- 'request:Add, update, or remove requests in a local v3 collection.'
234
- 'folder:Add, update, or remove folders in a local v3 collection.'
241
+ 'request:Add, get, update, or remove requests in a local v3 collection.'
242
+ 'folder:Add, get, update, or remove folders in a local v3 collection.'
243
+ 'example:Add, update, remove, get, or list examples (saved responses) under a request.'
244
+ 'import:Import a cURL or HAR source into a v3 collection (local, or cloud with --workspace).'
235
245
  'list:List collections\: your local project'\''s collections by default, or a Postman cloud workspace'\''s collections with --workspace.'
236
246
  'run:Initiate a Postman collection run from a given ID or path.'
237
247
  )
@@ -280,6 +290,29 @@ _postman_collection_get() {
280
290
  '*:id:'
281
291
  }
282
292
 
293
+ _postman_collection_delete() {
294
+ _arguments \
295
+ '(-y --yes)'{-y,--yes}'[Delete without asking for confirmation first]' \
296
+ '--api-key[Postman API key, used when deleting a cloud collection]:key:_files -g "*.(pem|crt|key)"' \
297
+ '--verbose[Verbose output]' \
298
+ '--json[Output the result as JSON]' \
299
+ '(-h --help)'{-h,--help}'[display help for command]' \
300
+ '*:idOrPath:'
301
+ }
302
+
303
+ _postman_collection_publish() {
304
+ _arguments \
305
+ '--target[Where to publish (default\: documentation) (default\: "documentation")]:name' \
306
+ '--environment[Cloud environment UID to bind to the docs]:environment-id:_files -g "*.json"' \
307
+ '--title[SEO title meta tag (max 120 characters)]:seo-title' \
308
+ '--description[SEO description meta tag (max 320 characters)]:seo-description' \
309
+ '--note[Note for Community Managers (request-to-publish only)]:text' \
310
+ '--api-key[Postman API key (defaults to your `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
311
+ '--json[Machine-readable JSON on stdout (errors on stderr)]' \
312
+ '(-h --help)'{-h,--help}'[display help for command]' \
313
+ '*:collection-id:_files -g "*.json"'
314
+ }
315
+
283
316
  _postman_collection_generate() {
284
317
  local context state state_descr line
285
318
  typeset -A opt_args
@@ -357,6 +390,7 @@ _postman_collection_request() {
357
390
  args)
358
391
  case $words[1] in
359
392
  add) _postman_collection_request_add ;;
393
+ get) _postman_collection_request_get ;;
360
394
  update) _postman_collection_request_update ;;
361
395
  rm|remove) _postman_collection_request_rm ;;
362
396
  esac
@@ -368,6 +402,7 @@ _postman_collection_request_commands() {
368
402
  local -a sub
369
403
  sub=(
370
404
  'add:Add an empty request to a local v3 collection (set its details later with `update`).'
405
+ 'get:Show a request (any type) in a v3 collection\: its own fields, with examples and messages as references.'
371
406
  'update:Update a request in a v3 collection (only the fields you pass).'
372
407
  'rm:Remove a request (any type) from a v3 collection.'
373
408
  'remove:Alias for rm'
@@ -386,14 +421,25 @@ _postman_collection_request_add() {
386
421
  '*:request-name:'
387
422
  }
388
423
 
424
+ _postman_collection_request_get() {
425
+ _arguments \
426
+ '--collection[Target collection\: name, directory, id, cloud id, or path. Required locally; optional in cloud mode (id only).]:id|name' \
427
+ '--folder[Folder to scope a bare-name request selector, e.g. "Users/Admin" (local mode only).]:id|name|path' \
428
+ '(-w --workspace)'{-w,--workspace}'[Target a Postman cloud workspace by id (cloud mode).]:id' \
429
+ '--json[JSON output.]' \
430
+ '(-h --help)'{-h,--help}'[display help for command]' \
431
+ '*:request:'
432
+ }
433
+
389
434
  _postman_collection_request_update() {
390
435
  _arguments \
391
436
  '--collection[Target collection\: name, directory, id, cloud id, or path (cloud\: id only). Required.]:id|name' \
392
437
  '--folder[Folder to scope the request selector, e.g. "Users/Admin" (local\: name/path; cloud\: id).]:id|name|path' \
393
438
  '--rename[Rename the request (moves its file). Any request type.]:name' \
394
- '--url[Request URL. Any request type.]:url' \
439
+ '--url[Request URL; its query string becomes the query parameters. Any request type.]:url' \
395
440
  '--method[HTTP method (http requests only).]:method' \
396
- '--param[Replace query parameters. Repeatable (http requests only). (default\: \[\])]:key\:value:_files -g "*.(pem|crt|key)"' \
441
+ '--param[Replace all query parameters and the url query string. Repeatable (http requests only). (default\: \[\])]:key\:value:_files -g "*.(pem|crt|key)"' \
442
+ '--clear-params[Remove all query parameters and the url query string (http requests only).]' \
397
443
  '(-d --body)'{-d,--body}'[Request payload (inline, @file, or - for stdin), interpreted by request type. For http, an optional "<type>\:" prefix picks the content type\: json/text/xml/html/javascript, file\:<path>, urlencoded\:key=v&k2=v2, or formdata\:key=v&file=@path.]:body' \
398
444
  '--variables[GraphQL variables JSON (graphql requests only).]:json' \
399
445
  '--description[Request description.]:text' \
@@ -429,6 +475,7 @@ _postman_collection_folder() {
429
475
  args)
430
476
  case $words[1] in
431
477
  add) _postman_collection_folder_add ;;
478
+ get) _postman_collection_folder_get ;;
432
479
  update) _postman_collection_folder_update ;;
433
480
  rm|remove) _postman_collection_folder_rm ;;
434
481
  esac
@@ -440,6 +487,7 @@ _postman_collection_folder_commands() {
440
487
  local -a sub
441
488
  sub=(
442
489
  'add:Add an empty folder to a local v3 collection (set its details later with `update`).'
490
+ 'get:Show a folder in a v3 collection\: its own fields and its direct children as references.'
443
491
  'update:Update a folder in a v3 collection (only the fields you pass).'
444
492
  'rm:Remove a folder from a v3 collection (recursive\: removes everything inside it).'
445
493
  'remove:Alias for rm'
@@ -457,6 +505,16 @@ _postman_collection_folder_add() {
457
505
  '*:folder-name:'
458
506
  }
459
507
 
508
+ _postman_collection_folder_get() {
509
+ _arguments \
510
+ '--collection[Target collection\: name, directory, id, cloud id, or path. Required locally; optional in cloud mode (id only).]:id|name' \
511
+ '--folder[Parent folder to scope a bare-name selector, e.g. "Users" (local mode only).]:id|name|path' \
512
+ '(-w --workspace)'{-w,--workspace}'[Target a Postman cloud workspace by id (cloud mode).]:id' \
513
+ '--json[JSON output.]' \
514
+ '(-h --help)'{-h,--help}'[display help for command]' \
515
+ '*:folder:'
516
+ }
517
+
460
518
  _postman_collection_folder_update() {
461
519
  _arguments \
462
520
  '--collection[Target collection\: name, directory, id, cloud id, or path (cloud\: id only). Required.]:id|name' \
@@ -482,6 +540,125 @@ _postman_collection_folder_rm() {
482
540
  '*:folder:'
483
541
  }
484
542
 
543
+ _postman_collection_example() {
544
+ local context state state_descr line
545
+ typeset -A opt_args
546
+ _arguments -C \
547
+ '(-h --help)'{-h,--help}'[display help for command]' \
548
+ '1: :_postman_collection_example_commands' \
549
+ '*::arg:->args'
550
+ case $state in
551
+ args)
552
+ case $words[1] in
553
+ add) _postman_collection_example_add ;;
554
+ update) _postman_collection_example_update ;;
555
+ rm|remove) _postman_collection_example_rm ;;
556
+ get) _postman_collection_example_get ;;
557
+ list) _postman_collection_example_list ;;
558
+ esac
559
+ ;;
560
+ esac
561
+ }
562
+
563
+ _postman_collection_example_commands() {
564
+ local -a sub
565
+ sub=(
566
+ 'add:Add an empty example under a request (defaults to 200 OK; set details later with `update`).'
567
+ 'update:Update an example (only the fields you pass).'
568
+ 'rm:Remove an example from a request.'
569
+ 'remove:Alias for rm'
570
+ 'get:Get a single example.'
571
+ 'list:List examples under a request.'
572
+ )
573
+ _describe -t commands 'example command' sub
574
+ }
575
+
576
+ _postman_collection_example_add() {
577
+ _arguments \
578
+ '--collection[Target collection\: name, directory, id, cloud id, or path. Required.]:id|name' \
579
+ '--request[Parent request (required). Local\: name/path/id; cloud\: id.]:id|name|path' \
580
+ '--folder[Folder to scope the request selector, e.g. "Users/Admin".]:id|name|path' \
581
+ '--type[Example type\: http (default). (default\: "http")]:type' \
582
+ '(-w --workspace)'{-w,--workspace}'[Target a Postman cloud workspace by id (cloud mode).]:id' \
583
+ '--json[JSON output.]' \
584
+ '(-h --help)'{-h,--help}'[display help for command]' \
585
+ '*:example-name:'
586
+ }
587
+
588
+ _postman_collection_example_update() {
589
+ _arguments \
590
+ '--collection[Target collection. Required.]:id|name' \
591
+ '--request[Parent request (optional; disambiguates local names / --copy-request).]:id|name|path' \
592
+ '--folder[Folder to scope the request selector.]:id|name|path' \
593
+ '--status-code[HTTP status code.]:code' \
594
+ '--status-text[HTTP status text.]:text' \
595
+ '(-d --body)'{-d,--body}'[Response body as contentType\:content.]:body' \
596
+ '--headers[Replace response headers. Repeatable. (default\: \[\])]:key\:value:_files -g "*.(pem|crt|key)"' \
597
+ '--description[Example description.]:text' \
598
+ '--rename[Rename the example.]:name' \
599
+ '--url[Example request snapshot URL.]:url' \
600
+ '--method[Example request snapshot method.]:method' \
601
+ '--request-headers[Replace request-snapshot headers. Repeatable. (default\: \[\])]:key\:value:_files -g "*.(pem|crt|key)"' \
602
+ '--request-param[Replace request-snapshot query params. Repeatable. (default\: \[\])]:key\:value:_files -g "*.(pem|crt|key)"' \
603
+ '--request-body[Example request snapshot body.]:body' \
604
+ '--copy-request[Refresh example.request from the parent request.]' \
605
+ '--clear-request[Remove the example.request snapshot.]' \
606
+ '(-w --workspace)'{-w,--workspace}'[Target a Postman cloud workspace by id (cloud mode).]:id' \
607
+ '--type[Example type for cloud mode\: http. (default\: "http")]:type' \
608
+ '--json[JSON output.]' \
609
+ '(-h --help)'{-h,--help}'[display help for command]' \
610
+ '*:example:'
611
+ }
612
+
613
+ _postman_collection_example_rm() {
614
+ _arguments \
615
+ '--collection[Target collection. Required.]:id|name' \
616
+ '--request[Parent request (optional; disambiguates local names).]:id|name|path' \
617
+ '--folder[Folder to scope the request selector.]:id|name|path' \
618
+ '(-w --workspace)'{-w,--workspace}'[Target a Postman cloud workspace by id (cloud mode).]:id' \
619
+ '--type[Example type for cloud mode\: http. (default\: "http")]:type' \
620
+ '--json[JSON output.]' \
621
+ '(-h --help)'{-h,--help}'[display help for command]' \
622
+ '*:example:'
623
+ }
624
+
625
+ _postman_collection_example_get() {
626
+ _arguments \
627
+ '--collection[Target collection. Required.]:id|name' \
628
+ '--request[Parent request (optional; disambiguates local names).]:id|name|path' \
629
+ '--folder[Folder to scope the request selector.]:id|name|path' \
630
+ '(-w --workspace)'{-w,--workspace}'[Target a Postman cloud workspace by id (cloud mode).]:id' \
631
+ '--type[Example type for cloud mode\: http. (default\: "http")]:type' \
632
+ '--json[JSON output.]' \
633
+ '(-h --help)'{-h,--help}'[display help for command]' \
634
+ '*:example:'
635
+ }
636
+
637
+ _postman_collection_example_list() {
638
+ _arguments \
639
+ '--collection[Target collection. Required.]:id|name' \
640
+ '--request[Parent request (required).]:id|name|path' \
641
+ '--folder[Folder to scope the request selector.]:id|name|path' \
642
+ '(-w --workspace)'{-w,--workspace}'[Target a Postman cloud workspace by id (cloud mode).]:id' \
643
+ '--type[Example type for cloud mode\: http. (default\: "http")]:type' \
644
+ '--json[JSON output.]' \
645
+ '(-h --help)'{-h,--help}'[display help for command]'
646
+ }
647
+
648
+ _postman_collection_import() {
649
+ _arguments \
650
+ '--type[Source format\: curl or har. Auto-detected from the extension/content when omitted.]:format' \
651
+ '--name[Collection display name. Defaults to a per-format fallback.]:name' \
652
+ '(-o --output)'{-o,--output}'[Output directory for the local collection (default\: postman/collections/<name>).]:dir:_files -g "*.json"' \
653
+ '(-w --workspace)'{-w,--workspace}'[Create the collection in a Postman cloud workspace by id (cloud mode).]:id' \
654
+ '--force[Overwrite an existing local target directory.]' \
655
+ '--timeout[Max time for a cloud import, in milliseconds (default 120000).]:ms' \
656
+ '--verbose[Verbose output (cloud import diagnostics).]' \
657
+ '--json[JSON output.]' \
658
+ '(-h --help)'{-h,--help}'[display help for command]' \
659
+ '*:src:'
660
+ }
661
+
485
662
  _postman_collection_list() {
486
663
  _arguments \
487
664
  '(-w --workspace)'{-w,--workspace}'[List a Postman cloud workspace'\''s collections by id. Omit to list the local project'\''s collections.]:workspaceId' \
@@ -496,20 +673,18 @@ _postman_collection_run() {
496
673
  _arguments \
497
674
  '(-e --environment)'{-e,--environment}'[Specify an Id or path to a Postman Environment]:path:_files -g "*.json"' \
498
675
  '(-g --globals)'{-g,--globals}'[Specify an Id or path to a file containing Postman Globals]:path:_files -g "*.json"' \
499
- '(-r --reporters)'{-r,--reporters}'[Specify the reporters to use for the run\: cli,json,junit,html. For multiple reporters, provide their names as a comma-separated list (E.g., -r cli,json) (default\: \["cli"\])]:reporter:(cli json junit html)' \
500
- '--output[Write a YAML-based run report to the given folder. Creates a paired `<prefix>.collection-run-summary.yaml` (refreshed during the run) and streaming `<prefix>.collection-run-executions.yaml`, where prefix defaults to `<collection-slug>-<timestamp>`. Gotcha\: --output streams run data to file and cannot be combined with the built-in reporters (-r/--reporter-*); doing so exits with an error. This keeps large runs from buffering an entire report in memory.]:folder' \
501
- '--reporter-json-structure[\[Optional\] Generate JSON report using the Newman schema. By default, JSON reports use the native structure of Postman CLI.]' \
676
+ '--output[Write a YAML-based run report to the given folder. Creates a paired `<prefix>.collection-run-summary.yaml` (refreshed during the run) and streaming `<prefix>.collection-run-executions.yaml`, where prefix defaults to `<collection-slug>-<timestamp>`. Gotcha\: --output streams run data to file, which keeps large runs from buffering an entire report in memory.]:folder' \
502
677
  '(-n --iteration-count)'{-n,--iteration-count}'[Define the number of iterations to run]:n' \
503
678
  '(-d --iteration-data)'{-d,--iteration-data}'[Specify a data file to use for iterations (either JSON or CSV)]:path:_files -g "*.(json|csv)"' \
504
- '--iteration-data-dataset[\[BETA\] Path to a .dataset.yaml (local collection) or a cloud dataset id (cloud collection) whose view drives the iteration data. Mutually exclusive with --iteration-data. Requires --iteration-data-view.]:pathOrId:_files -g "*.(json|csv)"' \
505
- '--iteration-data-view[\[BETA\] Name or id of the view to execute (within --iteration-data-dataset). The view'\''s result set drives one iteration per row.]:nameOrId' \
506
- '--dataset[\[BETA\] Pass --dataset multiple times to load several .dataset.yaml files (or directories containing them). Each is made available to collection scripts and local mock handlers as pm.datasets(<id>). When provided, auto-discovery of .dataset.yaml files from the collection'\''s parent repo is disabled. For a cloud collection, scripts address cloud datasets by id via pm.datasets(<id>) (resolved from your `postman login` session). SECURITY\: for a cloud collection this does NOT scope access — a script can pm.datasets(<anyId>) for any dataset your session can read. Only run collections you trust against a logged-in cloud session. (default\: \[\])]:pathOrDir:_files -g "*.json"' \
679
+ '--iteration-data-dataset[Path to a .dataset.yaml (local collection) or a cloud dataset id (cloud collection) whose view drives the iteration data. Mutually exclusive with --iteration-data. Requires --iteration-data-view.]:pathOrId:_files -g "*.(json|csv)"' \
680
+ '--iteration-data-view[Name or id of the view to execute (within --iteration-data-dataset). The view'\''s result set drives one iteration per row.]:nameOrId' \
681
+ '--dataset[Pass --dataset multiple times to load several .dataset.yaml files (or directories containing them). Each is made available to collection scripts and local mock handlers as pm.datasets(<id>). When provided, auto-discovery of .dataset.yaml files from the collection'\''s parent repo is disabled. For a cloud collection, scripts address cloud datasets by id via pm.datasets(<id>) (resolved from your `postman login` session). SECURITY\: for a cloud collection this does NOT scope access — a script can pm.datasets(<anyId>) for any dataset your session can read. Only run collections you trust against a logged-in cloud session. (default\: \[\])]:pathOrDir:_files -g "*.json"' \
507
682
  '-i[Specify the request/folder id, name, or path to run from the collection. Use a path (e.g. "FolderName/RequestName") to disambiguate items with the same name. Can be specified multiple times to run multiple items (default\: \[\])]:id' \
508
683
  '--global-var[Allows the specification of global variables via the command line, in a key=value format]:value' \
509
684
  '--env-var[Allows the specification of environment variables via the command line, in a key=value format (default\: \[\])]:value' \
510
685
  '--integration-id[Specify the integration id for the report. (Only supported in the US region)]:integration-id' \
511
686
  '--postman-api-key[API Key used to load the resources from the Postman API (Only supported in the US region, use '\''postman login --region'\'' to authenticate instead)]:apiKey' \
512
- '--alias[Specify the alias of the API key to fetch remote resources using it.]:alias' \
687
+ '--alias[Specify the alias of the API key to fetch remote resources using it. (This option is discontinued and will be removed in a future release.)]:alias' \
513
688
  '--bail[Specify whether or not to gracefully stop a collection run on encountering an error and whether to end the run with an error based on the optional modifier]:modifiers:(folder failure)' \
514
689
  '--ignore-redirects[Prevents Postman CLI from automatically following 3XX redirect responses]' \
515
690
  '(-x --suppress-exit-code)'{-x,--suppress-exit-code}'[Specify whether or not to override the default exit code for the current run]' \
@@ -537,20 +712,9 @@ _postman_collection_run() {
537
712
  '--simulation[Simulation id to record start history against when using --simulate.]:id' \
538
713
  '--simulate-workspace[Workspace that owns the --simulate run, for recording its start history.]:id' \
539
714
  '--no-simulate-history[Do not record the --simulate run in the simulation'\''s start history.]' \
540
- '--report-events[Upload results for git-native v3 collection runs. Analytics are sent by default]' \
541
- '--no-report-events[Do not send analytics to Postman]' \
542
- '(-h --help)'{-h,--help}'[display help for command]' \
543
- '--reporter-json-export[Path to save the report for the given reporter.]:value:_files -g "*.(json|xml|html)"' \
544
- '--reporter-junit-export[Path to save the report for the given reporter.]:value:_files -g "*.(json|xml|html)"' \
545
- '--reporter-html-export[Path to save the report for the given reporter.]:value:_files -g "*.(json|xml|html)"' \
546
- '--reporter-json-omitRequestBodies[Remove all request bodies from the report.]' \
547
- '--reporter-html-omitRequestBodies[Remove all request bodies from the report.]' \
548
- '--reporter-json-omitResponseBodies[Remove all response bodies from the report.]' \
549
- '--reporter-html-omitResponseBodies[Remove all response bodies from the report.]' \
550
- '--reporter-json-omitHeaders[Remove all request and response headers from the report.]' \
551
- '--reporter-html-omitHeaders[Remove all request and response headers from the report.]' \
552
- '--reporter-json-omitAllHeadersAndBody[Remove all request/response headers and bodies from the report.]' \
553
- '--reporter-html-omitAllHeadersAndBody[Remove all request/response headers and bodies from the report.]' \
715
+ '--report-events[Dispatch run events, including git-native v3 collection run results, to the API Catalog and Application Inventory ingestion pipelines (on by default)]' \
716
+ '--no-report-events[Do not dispatch run events to the API Catalog and Application Inventory ingestion pipelines]' \
717
+ '(-h --help)'{-h,--help}'[display help for command]' \
554
718
  '*:collectionId/Path:_files -g "*.json"'
555
719
  }
556
720
 
@@ -567,6 +731,7 @@ _postman_environment() {
567
731
  new) _postman_environment_new ;;
568
732
  list) _postman_environment_list ;;
569
733
  get) _postman_environment_get ;;
734
+ delete) _postman_environment_delete ;;
570
735
  var) _postman_environment_var ;;
571
736
  lint) _postman_environment_lint ;;
572
737
  esac
@@ -580,6 +745,7 @@ _postman_environment_commands() {
580
745
  'new:Scaffold a local environment file, or create one in a Postman workspace with --workspace.'
581
746
  'list:List environments in a Postman workspace.'
582
747
  'get:Read an environment by ID or local environment file path.'
748
+ 'delete:Delete an environment by ID or local environment file path. Prompts unless --yes is passed.'
583
749
  'var:Read and update environment variables.'
584
750
  'lint:Run linting on a local Postman environment at the given file or directory path.'
585
751
  )
@@ -610,7 +776,15 @@ _postman_environment_get() {
610
776
  _arguments \
611
777
  '--verbose[Verbose output]' \
612
778
  '--json[JSON output]' \
613
- '--show-secrets[Show secret variable values in output]' \
779
+ '(-h --help)'{-h,--help}'[display help for command]' \
780
+ '*:environment:_files -g "*.json"'
781
+ }
782
+
783
+ _postman_environment_delete() {
784
+ _arguments \
785
+ '(-y --yes)'{-y,--yes}'[Delete without asking for confirmation first]' \
786
+ '--verbose[Verbose output]' \
787
+ '--json[JSON output]' \
614
788
  '(-h --help)'{-h,--help}'[display help for command]' \
615
789
  '*:environment:_files -g "*.json"'
616
790
  }
@@ -636,7 +810,7 @@ _postman_environment_var() {
636
810
  _postman_environment_var_commands() {
637
811
  local -a sub
638
812
  sub=(
639
- 'set:Set one variable in an environment.'
813
+ 'set:Set one variable in an environment, or link it to a shared-vault secret.'
640
814
  'get:Read one variable value from an environment.'
641
815
  'unset:Remove one variable from an environment.'
642
816
  )
@@ -646,6 +820,9 @@ _postman_environment_var_commands() {
646
820
  _postman_environment_var_set() {
647
821
  _arguments \
648
822
  '(-e --environment)'{-e,--environment}'[Cloud Environment ID or local environment file path.]:environment:_files -g "*.json"' \
823
+ '--secret-id[Link this variable to a shared-vault secret instead of an inline value (from `secret create`'\''s output).]:id' \
824
+ '--vault-id[Vault id for --secret-id (auto-resolved from --workspace when omitted).]:id' \
825
+ '(-w --workspace)'{-w,--workspace}'[Workspace to resolve --vault-id from when --secret-id is given without --vault-id (falls back to .postman/resources.yaml).]:workspaceId' \
649
826
  '--verbose[Verbose output]' \
650
827
  '--json[JSON output]' \
651
828
  '(-h --help)'{-h,--help}'[display help for command]' \
@@ -657,7 +834,6 @@ _postman_environment_var_get() {
657
834
  '(-e --environment)'{-e,--environment}'[Cloud Environment ID or local environment file path.]:environment:_files -g "*.json"' \
658
835
  '--verbose[Verbose output]' \
659
836
  '--json[JSON output]' \
660
- '--show-secrets[Show secret variable values in output]' \
661
837
  '(-h --help)'{-h,--help}'[display help for command]' \
662
838
  '*:key:_files -g "*.json"'
663
839
  }
@@ -689,6 +865,8 @@ _postman_globals() {
689
865
  case $state in
690
866
  args)
691
867
  case $words[1] in
868
+ get) _postman_globals_get ;;
869
+ var) _postman_globals_var ;;
692
870
  lint) _postman_globals_lint ;;
693
871
  esac
694
872
  ;;
@@ -698,11 +876,82 @@ _postman_globals() {
698
876
  _postman_globals_commands() {
699
877
  local -a sub
700
878
  sub=(
879
+ 'get:Read local workspace globals from the default file, or cloud globals with --workspace.'
880
+ 'var:Read and update variables in the workspace globals singleton.'
701
881
  'lint:Run linting on a local Postman globals file at the given file or directory path.'
702
882
  )
703
883
  _describe -t commands 'globals command' sub
704
884
  }
705
885
 
886
+ _postman_globals_get() {
887
+ _arguments \
888
+ '(-w --workspace)'{-w,--workspace}'[Workspace ID to read globals from.]:workspaceId' \
889
+ '--workspace-path[Local Postman workspace path. Defaults to the current directory.]:path:_files -g "*.json"' \
890
+ '--verbose[Verbose output]' \
891
+ '--json[JSON output]' \
892
+ '(-h --help)'{-h,--help}'[display help for command]'
893
+ }
894
+
895
+ _postman_globals_var() {
896
+ local context state state_descr line
897
+ typeset -A opt_args
898
+ _arguments -C \
899
+ '(-h --help)'{-h,--help}'[display help for command]' \
900
+ '1: :_postman_globals_var_commands' \
901
+ '*::arg:->args'
902
+ case $state in
903
+ args)
904
+ case $words[1] in
905
+ set) _postman_globals_var_set ;;
906
+ get) _postman_globals_var_get ;;
907
+ unset) _postman_globals_var_unset ;;
908
+ esac
909
+ ;;
910
+ esac
911
+ }
912
+
913
+ _postman_globals_var_commands() {
914
+ local -a sub
915
+ sub=(
916
+ 'set:Set one variable in local workspace globals, or link it to a shared-vault secret.'
917
+ 'get:Read one variable from local workspace globals, or cloud globals with --workspace.'
918
+ 'unset:Remove one variable from local workspace globals, or cloud globals with --workspace.'
919
+ )
920
+ _describe -t commands 'var command' sub
921
+ }
922
+
923
+ _postman_globals_var_set() {
924
+ _arguments \
925
+ '(-w --workspace)'{-w,--workspace}'[Workspace ID whose cloud globals should be updated.]:workspaceId' \
926
+ '--secret-id[Link this variable to a shared-vault secret instead of an inline value (from `secret create`'\''s output).]:id' \
927
+ '--vault-id[Vault id for --secret-id (auto-resolved from --workspace when omitted).]:id' \
928
+ '--workspace-path[Local Postman workspace path. Defaults to the current directory.]:path:_files -g "*.json"' \
929
+ '--verbose[Verbose output]' \
930
+ '--json[JSON output]' \
931
+ '(-h --help)'{-h,--help}'[display help for command]' \
932
+ '*:value:'
933
+ }
934
+
935
+ _postman_globals_var_get() {
936
+ _arguments \
937
+ '(-w --workspace)'{-w,--workspace}'[Workspace ID whose cloud globals should be read.]:workspaceId' \
938
+ '--workspace-path[Local Postman workspace path. Defaults to the current directory.]:path:_files -g "*.json"' \
939
+ '--verbose[Verbose output]' \
940
+ '--json[JSON output]' \
941
+ '(-h --help)'{-h,--help}'[display help for command]' \
942
+ '*:key:_files -g "*.json"'
943
+ }
944
+
945
+ _postman_globals_var_unset() {
946
+ _arguments \
947
+ '(-w --workspace)'{-w,--workspace}'[Workspace ID whose cloud globals should be updated.]:workspaceId' \
948
+ '--workspace-path[Local Postman workspace path. Defaults to the current directory.]:path:_files -g "*.json"' \
949
+ '--verbose[Verbose output]' \
950
+ '--json[JSON output]' \
951
+ '(-h --help)'{-h,--help}'[display help for command]' \
952
+ '*:key:_files -g "*.json"'
953
+ }
954
+
706
955
  _postman_globals_lint() {
707
956
  _arguments \
708
957
  '(-f --fail-severity)'{-f,--fail-severity}'[Exit with failure if diagnostics at this level or above are present. \[choices\: "error", "warning"\] (default\: "error")]:value' \
@@ -798,8 +1047,8 @@ _postman_runner_start() {
798
1047
  '--dataset-jdbc-driver-dir[Folder on this machine holding the JDBC driver .jar files you put there. Required to run a dataset that uses a JDBC source. Drivers are loaded only from this folder and matched by file name; driver paths saved in the dataset are ignored]:path:_files -/' \
799
1048
  '--metrics[Enable the metrics server for health checks]' \
800
1049
  '--metrics-port[Port for the metrics server (default\: "9090")]:port' \
801
- '--report-events[Accepted for compatibility; run events are reported by default]' \
802
- '--no-report-events[Do not report run events to Postman]' \
1050
+ '--report-events[Dispatch run events to the API Catalog and Application Inventory ingestion pipelines (on by default)]' \
1051
+ '--no-report-events[Do not dispatch run events to the API Catalog and Application Inventory ingestion pipelines]' \
803
1052
  '(-h --help)'{-h,--help}'[display help for command]'
804
1053
  }
805
1054
 
@@ -849,7 +1098,7 @@ _postman_spec_commands() {
849
1098
  'ai-readiness:Score an OpenAPI specification for AI readiness by ID or local file path.'
850
1099
  'list:List local spec files under a path, or (no path) a workspace'\''s cloud specs.'
851
1100
  'get:Read a spec definition, including every file of a multi-file spec.'
852
- 'file:Add, update, or remove files in a spec (cloud ID or local directory).'
1101
+ 'file:Get, add, update, or remove files in a spec (cloud ID or local directory).'
853
1102
  'create:Create a new spec in a workspace, or (with path) scaffold a local spec file.'
854
1103
  'generate:Generate artifacts from a specification.'
855
1104
  'sync:Sync a generated collection with its source specification.'
@@ -863,8 +1112,8 @@ _postman_spec_lint() {
863
1112
  '(-f --fail-severity)'{-f,--fail-severity}'[Results of this level or above will trigger a failure exit code. \[choices\: "error", "warning", "info", "hint"\] (default\: "ERROR")]:value' \
864
1113
  '(-o --output)'{-o,--output}'[Output format for the results. \[choices\: "json", "csv"\]]:value' \
865
1114
  '--workspace-id[The workspace ID to use for fetching governance rulesets.]:value' \
866
- '--report-events[Accepted for compatibility; analytics are sent by default]' \
867
- '--no-report-events[Do not send analytics to Postman]' \
1115
+ '--report-events[Dispatch events to the API Catalog and Application Inventory ingestion pipelines (on by default)]' \
1116
+ '--no-report-events[Do not dispatch events to the API Catalog and Application Inventory ingestion pipelines]' \
868
1117
  '(-h --help)'{-h,--help}'[display help for command]' \
869
1118
  '*:spec:'
870
1119
  }
@@ -905,6 +1154,7 @@ _postman_spec_file() {
905
1154
  case $state in
906
1155
  args)
907
1156
  case $words[1] in
1157
+ get) _postman_spec_file_get ;;
908
1158
  add) _postman_spec_file_add ;;
909
1159
  update) _postman_spec_file_update ;;
910
1160
  rm) _postman_spec_file_rm ;;
@@ -916,6 +1166,7 @@ _postman_spec_file() {
916
1166
  _postman_spec_file_commands() {
917
1167
  local -a sub
918
1168
  sub=(
1169
+ 'get:Show a file in a spec\: its path, size and content.'
919
1170
  'add:Add a new file to a spec.'
920
1171
  'update:Update an existing file in a spec.'
921
1172
  'rm:Remove a file from a spec.'
@@ -923,6 +1174,14 @@ _postman_spec_file_commands() {
923
1174
  _describe -t commands 'file command' sub
924
1175
  }
925
1176
 
1177
+ _postman_spec_file_get() {
1178
+ _arguments \
1179
+ '--json[Output as JSON]' \
1180
+ '--api-key[Postman API key]:key:_files -g "*.(pem|crt|key)"' \
1181
+ '(-h --help)'{-h,--help}'[display help for command]' \
1182
+ '*:filePath:_files -g "*.json"'
1183
+ }
1184
+
926
1185
  _postman_spec_file_add() {
927
1186
  _arguments \
928
1187
  '(-c --content)'{-c,--content}'[File content (reads from stdin if omitted)]:content' \
@@ -1023,6 +1282,7 @@ _postman_spec_sync_collection() {
1023
1282
  _arguments \
1024
1283
  '--collection-id[Collection ID to sync (required for cloud mode)]:id' \
1025
1284
  '--api-key[Postman API key]:key:_files -g "*.(pem|crt|key)"' \
1285
+ '--force[Overwrite hand-written scripts that the spec would otherwise drop]' \
1026
1286
  '(-h --help)'{-h,--help}'[display help for command]' \
1027
1287
  '*:spec:'
1028
1288
  }
@@ -1066,7 +1326,7 @@ _postman_monitor_commands() {
1066
1326
  sub=(
1067
1327
  'run:Invoke a monitor run and display results.'
1068
1328
  'create:Create a collection-based monitor.'
1069
- 'update:Update a monitor'\''s schedule, runner, notifications or run options.'
1329
+ 'update:Update a monitor'\''s schedule, runner, notifications, request selection or run options.'
1070
1330
  'delete:Permanently delete a monitor. Prompts for confirmation unless --yes is passed.'
1071
1331
  'jobs:Inspect a monitor'\''s jobs and their per-region runs.'
1072
1332
  'runs:Inspect a monitor run'\''s attempts.'
@@ -1099,6 +1359,7 @@ _postman_monitor_create() {
1099
1359
  '--schedule[Cron expression for the monitor'\''s schedule]:cron' \
1100
1360
  '--timezone[Time zone for --schedule, for example America/New_York (defaults to the host machine'\''s own zone)]:tz' \
1101
1361
  '--runner[A Postman region name (see `postman runner regions`) or the id of a self-hosted runner created in Postman (list existing ones with `postman runner list`) to run from (repeatable) (default\: \[\])]:value' \
1362
+ '(-i --item)'{-i,--item}'[Id of a request or folder in the collection to run, in the order given (repeatable; ids only, not names or paths; defaults to every request; list ids with `postman collection get <collection-id> --json`) (default\: \[\])]:id' \
1102
1363
  '--notify-email[Email to notify on a run failure or error (repeatable) (default\: \[\])]:email' \
1103
1364
  '--notification-limit[Consecutive failure notifications to send before muting them]:n' \
1104
1365
  '--retry[Times to retry a failed run]:n' \
@@ -1124,6 +1385,8 @@ _postman_monitor_update() {
1124
1385
  '--schedule[New cron expression for the monitor'\''s schedule]:cron' \
1125
1386
  '--timezone[Time zone for --schedule, for example America/New_York (defaults to the host machine'\''s own zone)]:tz' \
1126
1387
  '--runner[A Postman region name (see `postman runner regions`) or the id of a self-hosted runner created in Postman (list existing ones with `postman runner list`) to run from (repeatable; replaces the current set) (default\: \[\])]:value' \
1388
+ '(-i --item)'{-i,--item}'[Id of a request or folder in the collection to run, in the order given (repeatable; ids only, not names or paths; replaces the saved selection; list ids with `postman collection get <collection-id> --json`) (default\: \[\])]:id' \
1389
+ '--clear-items[Remove the saved selection so the monitor runs every request in its collection]' \
1127
1390
  '--notify-email[Email to notify on a run failure or error (repeatable; replaces the current list) (default\: \[\])]:email' \
1128
1391
  '--clear-notifications[Remove every notification recipient]' \
1129
1392
  '(-e --environment)'{-e,--environment}'[Environment to run the monitored collection with (replaces the current one)]:id' \
@@ -1340,6 +1603,7 @@ _postman_workspace_list() {
1340
1603
  _arguments \
1341
1604
  '(-f --filter)'{-f,--filter}'[Filter workspaces by name.]:name' \
1342
1605
  '(-t --type)'{-t,--type}'[Filter workspaces by visibility type\: team, public, private, personal.]:type' \
1606
+ '--cursor[Fetch the page of workspaces that follows this cursor.]:cursor' \
1343
1607
  '--verbose[Verbose output]' \
1344
1608
  '--debug[Debug output]' \
1345
1609
  '--json[JSON output]' \
@@ -1349,6 +1613,7 @@ _postman_workspace_list() {
1349
1613
  _postman_workspace_prepare() {
1350
1614
  _arguments \
1351
1615
  '--verbose[Show detailed logging]' \
1616
+ '--json[Print the outcome as machine-readable JSON.]' \
1352
1617
  '(-h --help)'{-h,--help}'[display help for command]'
1353
1618
  }
1354
1619
 
@@ -1357,9 +1622,10 @@ _postman_workspace_push() {
1357
1622
  '--no-prepare[Skip ID validation and auto-fix before pushing]' \
1358
1623
  '(-y --yes)'{-y,--yes}'[Skip all confirmation prompts]' \
1359
1624
  '--push-strategy[Push strategy. "force-sync"\: mirror the whole workspace — also DELETE cloud entities that have no local counterpart (destructive). Defaults to "default" (create/update only).]:strategy' \
1625
+ '--json[Print the outcome as machine-readable JSON. Implies non-interactive\: use --yes to actually push.]' \
1360
1626
  '--verbose[Show detailed logging]' \
1361
- '--report-events[Accepted for compatibility; analytics are sent by default]' \
1362
- '--no-report-events[Do not send analytics to Postman]' \
1627
+ '--report-events[Dispatch events to the API Catalog and Application Inventory ingestion pipelines (on by default)]' \
1628
+ '--no-report-events[Do not dispatch events to the API Catalog and Application Inventory ingestion pipelines]' \
1363
1629
  '(-h --help)'{-h,--help}'[display help for command]'
1364
1630
  }
1365
1631
 
@@ -1392,6 +1658,7 @@ _postman_workspace_create() {
1392
1658
  '--path[Directory to bind (defaults to the current directory)]:dir:_files -g "*.json"' \
1393
1659
  '--no-connect[Create the workspace without binding it to the repository]' \
1394
1660
  '--force[Create even when a workspace is already recorded for this repo]' \
1661
+ '--json[Print the created workspace as machine-readable JSON.]' \
1395
1662
  '(-h --help)'{-h,--help}'[display help for command]'
1396
1663
  }
1397
1664
 
@@ -1409,6 +1676,7 @@ _postman_workspace_pull() {
1409
1676
  _arguments \
1410
1677
  '(-y --yes)'{-y,--yes}'[Skip all confirmation prompts]' \
1411
1678
  '--source-workspace[Pull from a different source workspace.]:workspaceId' \
1679
+ '--json[Print the outcome as machine-readable JSON. Implies non-interactive\: use --yes to actually pull.]' \
1412
1680
  '--verbose[Show detailed logging]' \
1413
1681
  '(-h --help)'{-h,--help}'[display help for command]' \
1414
1682
  '*:workspaceId:'
@@ -1417,6 +1685,7 @@ _postman_workspace_pull() {
1417
1685
  _postman_workspace_connect_git() {
1418
1686
  _arguments \
1419
1687
  '--verbose[Show detailed logging]' \
1688
+ '--json[Print the outcome as machine-readable JSON.]' \
1420
1689
  '(-h --help)'{-h,--help}'[display help for command]' \
1421
1690
  '*:path:_files -g "*.json"'
1422
1691
  }
@@ -1425,6 +1694,7 @@ _postman_workspace_disconnect_git() {
1425
1694
  _arguments \
1426
1695
  '(-y --yes)'{-y,--yes}'[Skip all confirmation prompts]' \
1427
1696
  '--verbose[Show detailed logging]' \
1697
+ '--json[Print the outcome as machine-readable JSON. Requires --yes to actually disconnect.]' \
1428
1698
  '(-h --help)'{-h,--help}'[display help for command]' \
1429
1699
  '*:workspaceId:'
1430
1700
  }
@@ -1485,6 +1755,7 @@ _postman_performance() {
1485
1755
  case $words[1] in
1486
1756
  run) _postman_performance_run ;;
1487
1757
  list) _postman_performance_list ;;
1758
+ get) _postman_performance_get ;;
1488
1759
  esac
1489
1760
  ;;
1490
1761
  esac
@@ -1495,6 +1766,7 @@ _postman_performance_commands() {
1495
1766
  sub=(
1496
1767
  'run:Run a performance test on a collection'
1497
1768
  'list:List past performance runs for a collection, newest first.'
1769
+ 'get:Get one performance run by ID.'
1498
1770
  )
1499
1771
  _describe -t commands 'performance command' sub
1500
1772
  }
@@ -1505,9 +1777,12 @@ _postman_performance_run() {
1505
1777
  '(-g --globals)'{-g,--globals}'[Specify an Id to a Postman Globals]:id' \
1506
1778
  '--setup-collection[Collection UID to run before the performance test]:id' \
1507
1779
  '--teardown-collection[Collection UID to run after the performance test]:id' \
1508
- '--vu-count[Number of virtual users (default\: 20)]:count' \
1780
+ '--peak-vu[Peak (maximum) virtual users (default\: 20)]:count' \
1781
+ '--vu-count[Older name for --peak-vu]:count' \
1782
+ '--base-vu[Base (floor) virtual users the run starts from, 1 or more. Not for --load-profile fixed, which runs flat]:count' \
1509
1783
  '(-d --duration)'{-d,--duration}'[Duration of the performance test in minutes (default\: 1)]:minutes' \
1510
1784
  '(-p --load-profile)'{-p,--load-profile}'[Load profile type\: fixed, ramp-up, spike, peak (default\: "ramp-up")]:profile' \
1785
+ '(-s --load-segments)'{-s,--load-segments}'[Duration of each phase of the profile, comma separated, in order. ramp-up takes 2, spike 3, peak 4; fixed takes none. See the load-segment section below for which position is which phase]:durations' \
1511
1786
  '--data-file[Path to a JSON or CSV data file to use with the collection]:path:_files -g "*.json"' \
1512
1787
  '--ssl-client-cert-list[Path to a client certificates configuration file (JSON). Local runner only.]:path:_files -g "*.(pem|crt|key)"' \
1513
1788
  '--ssl-client-cert[Path to a client certificate (PEM) for mTLS targets. Local runner only.]:path:_files -g "*.(pem|crt|key)"' \
@@ -1521,7 +1796,8 @@ _postman_performance_run() {
1521
1796
  '--postman-api-key[API Key used to load the resources from the Postman API (Only supported in the US region, use '\''postman login --region'\'' to authenticate instead)]:apiKey' \
1522
1797
  '--output[Output format for live results\: auto (default, interactive dashboard) or ndjson (one JSON object per line on stdout, ending with a "summary" event — for CI or other non-interactive use) (default\: "auto")]:format' \
1523
1798
  '--runner[Runner to execute the performance test on\: local, postman-cloud, or postman-cloud-static-ip (egress from your account region'\''s static-IP cluster) (default\: local)]:runner' \
1524
- '--pass-if[Pass condition in format\: function(metric, value). Functions\: less_than, greater_than, less_than_eq, greater_than_eq. Metrics\: avg, p90, p95, p99, error_rate, rps. Example\: less_than(p95, 500) or less_than(error_rate, 5)]:condition' \
1799
+ '--disable-unicode[Forces Unicode compliant symbols to be replaced by their plain text equivalents]' \
1800
+ '--pass-if[Pass condition in format\: function(metric, value) (repeatable; all conditions must hold). Functions\: less_than, greater_than, less_than_eq, greater_than_eq. Metrics\: avg, p90, p95, p99, error_rate, rps. Example\: less_than(p95, 500)]:condition' \
1525
1801
  '--use-mock[Redirect a variable/host to a local code mock or cloud Mock Server (repeatable). Format\: "<{{var}}|host> mock|mock-server\:<path|id> \[scenario\]" (default\: \[\])]:mapping' \
1526
1802
  '--dataset[Pass --dataset multiple times to load several .dataset.yaml files (or directories containing them). Each is made available to the handlers of the local mocks started by --use-mock as pm.datasets(<id>). Local runner only. (default\: \[\])]:pathOrDir:_files -g "*.json"' \
1527
1803
  '(-h --help)'{-h,--help}'[display help for command]' \
@@ -1532,12 +1808,22 @@ _postman_performance_list() {
1532
1808
  _arguments \
1533
1809
  '(-c --collection-id)'{-c,--collection-id}'[Collection ID whose performance runs to list]:id' \
1534
1810
  '--cursor[Pagination cursor from a previous page'\''s response]:token' \
1535
- '--json[Output as JSON instead of a table]' \
1811
+ '--output[Output format\: table (default) or json (default\: "table")]:format' \
1812
+ '--json[Alias for --output json]' \
1536
1813
  '--timeout[Milliseconds to wait for the service before failing (default\: "30000")]:ms' \
1537
1814
  '(-h --help)'{-h,--help}'[display help for command]' \
1538
1815
  '*:id:'
1539
1816
  }
1540
1817
 
1818
+ _postman_performance_get() {
1819
+ _arguments \
1820
+ '--output[Output format\: table (default) or json (default\: "table")]:format' \
1821
+ '--json[Alias for --output json]' \
1822
+ '--timeout[Milliseconds to wait for the service before failing (default\: "30000")]:ms' \
1823
+ '(-h --help)'{-h,--help}'[display help for command]' \
1824
+ '*:runId:'
1825
+ }
1826
+
1541
1827
  _postman_flows() {
1542
1828
  local context state state_descr line
1543
1829
  typeset -A opt_args
@@ -1632,8 +1918,8 @@ _postman_flows_run() {
1632
1918
  '--reporters[Save a test results report to a file (supported\: html)]:format' \
1633
1919
  '(-x --suppress-exit-code)'{-x,--suppress-exit-code}'[Specify whether or not to override the default exit code for the current run]' \
1634
1920
  '--workspace[Workspace ID required for flows that contain connector blocks. Find it in the Postman app URL\: https\://postman.com/workspace/<workspaceId>]:workspaceId' \
1635
- '--report-events[Accepted for compatibility; analytics are sent by default]' \
1636
- '--no-report-events[Do not send analytics to Postman]' \
1921
+ '--report-events[Dispatch events to the API Catalog and Application Inventory ingestion pipelines (on by default)]' \
1922
+ '--no-report-events[Do not dispatch events to the API Catalog and Application Inventory ingestion pipelines]' \
1637
1923
  '--verbose[Verbose output]' \
1638
1924
  '--debug[Debug output]' \
1639
1925
  '--json[JSON output]' \
@@ -1685,6 +1971,14 @@ _postman_request() {
1685
1971
  '--redirects-max[Maximum number of redirects to follow. Default is unlimited. Useful for preventing redirect loops.]:n' \
1686
1972
  '--redirects-follow-method[Preserves the original HTTP method when following redirects. By default, redirects are followed with GET method.]' \
1687
1973
  '--redirects-remove-referrer[Removes the Referer header when following redirects. By default, Referer header is sent with redirects.]' \
1974
+ '(-k --insecure)'{-k,--insecure}'[Disable SSL certificate verification.]' \
1975
+ '--ssl-client-cert-list[Specify the path to client certificate configurations (JSON).]:path:_files -g "*.(pem|crt|key)"' \
1976
+ '--ssl-client-cert[Specify the path to a client certificate (PEM).]:path:_files -g "*.(pem|crt|key)"' \
1977
+ '--ssl-client-key[Specify the path to a client certificate private key.]:path:_files -g "*.(pem|crt|key)"' \
1978
+ '--ssl-client-passphrase[Specify the client certificate passphrase (for protected key).]:passphrase' \
1979
+ '--ssl-extra-ca-certs[Specify additional trusted CA certificates (PEM).]:path:_files -g "*.(pem|crt|key)"' \
1980
+ '--cookie-jar[Specify the path to a custom cookie jar (serialized tough-cookie JSON).]:path:_files -g "*.json"' \
1981
+ '--export-cookie-jar[Export the cookie jar to a file after completing the request.]:path:_files -g "*.json"' \
1688
1982
  '--retry[Number of retry attempts for failed requests (4xx, 5xx, network errors). Useful for flaky endpoints or rate-limited APIs. (default\: 0)]:n' \
1689
1983
  '--retry-delay[Delay between retry attempts in milliseconds. (default\: 1000)]:ms' \
1690
1984
  '--script-pre-request[Add JavaScript script to run before the request. Can be inline JS or @filepath to load from file. Scripts have access to pm.* APIs. Example\: --script-pre-request "pm.environment.set('\''timestamp'\'', Date.now());" or --script-pre-request @setup.js]:script' \
@@ -1694,8 +1988,8 @@ _postman_request() {
1694
1988
  '--verbose[Show detailed request and response information including headers, body, and metadata.]' \
1695
1989
  '--response-only[suppress all output except response body. Useful for piping to other commands.]' \
1696
1990
  '--debug[Debug mode\: show detailed execution information including retry attempts, redirects, and timing breakdowns.]' \
1697
- '--report-events[Accepted for compatibility; analytics are sent by default]' \
1698
- '--no-report-events[Do not send analytics to Postman]' \
1991
+ '--report-events[Dispatch events to the API Catalog and Application Inventory ingestion pipelines (on by default)]' \
1992
+ '--no-report-events[Do not dispatch events to the API Catalog and Application Inventory ingestion pipelines]' \
1699
1993
  '(-h --help)'{-h,--help}'[display help for command]' \
1700
1994
  '--auth-basic-username[Supply authentication parameters dynamically.]:value' \
1701
1995
  '--auth-basic-password[Supply authentication parameters dynamically.]:value' \
@@ -1938,6 +2232,7 @@ _postman_mock_run() {
1938
2232
  '--api-key[Postman API key, used with a Postman cloud id (defaults to your `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
1939
2233
  '(-w --workspace)'{-w,--workspace}'[Workspace that owns the run, for recording its start history. Auto-resolved for a Postman cloud id; required to record history for a path.]:id' \
1940
2234
  '--no-history[Do not record this run in the mock'\''s start history.]' \
2235
+ '--output[Live output format\: auto (default, human-readable logs) or ndjson (one JSON event per line on stdout, ending with a "summary" event — for CI or other non-interactive use) (default\: "auto")]:format' \
1941
2236
  '--dataset[Pass --dataset multiple times to load several .dataset.yaml files (or directories containing them). Each is made available to the mock'\''s handlers as pm.datasets(<id>). (default\: \[\])]:pathOrDir:_files -g "*.json"' \
1942
2237
  '(-h --help)'{-h,--help}'[display help for command]' \
1943
2238
  '*:mockIdOrPath:_files -g "*.json"'
@@ -2052,9 +2347,9 @@ _postman_application_test() {
2052
2347
  '--network-log[Directory to scan for captured artifacts, or a direct path to a Playwright JSON report / NDJSON capture file. When a directory is given, recursively discovers `*.json` Playwright reports plus their `trace.zip` attachments, and `network-capture-*.ndjson` at the top level. By default, scans Playwright config `outputDir`, test-results/, then pm-results/.]:path:_files -g "*.json"' \
2053
2348
  '--capture-only[Skip collection matching and tests; capture traffic and save a V3 collection organised by host]' \
2054
2349
  '--output[Output directory for captured collection (default\: pm-results/captured/; used with --capture-only)]:path:_files -g "*.json"' \
2055
- '--force[Overwrite the output directory if it exists and is not empty (used with --capture-only)]' \
2056
- '--report-events[Send application test run results to Postman (default\: true)]:boolean' \
2057
- '--no-report-events[Do not send run results or analytics to Postman]' \
2350
+ '--force[Deprecated\: output directory is always overwritten on re-run (used with --capture-only)]' \
2351
+ '--report-events[Dispatch application test run results to the API Catalog and Application Inventory ingestion pipelines (on by default) (default\: true)]:boolean' \
2352
+ '--no-report-events[Do not dispatch run results to the API Catalog and Application Inventory ingestion pipelines]' \
2058
2353
  '--verbose[Show detailed per-request matching, sandbox errors, and debug information]' \
2059
2354
  '(-h --help)'{-h,--help}'[display help for command]'
2060
2355
  }
@@ -2065,38 +2360,119 @@ _postman_application_setup_capture() {
2065
2360
  '(-h --help)'{-h,--help}'[display help for command]'
2066
2361
  }
2067
2362
 
2068
- _postman_simulate() {
2363
+ _postman_simulation() {
2069
2364
  local context state state_descr line
2070
2365
  typeset -A opt_args
2071
2366
  _arguments -C \
2072
2367
  '(-h --help)'{-h,--help}'[display help for command]' \
2073
- '1: :_postman_simulate_commands' \
2368
+ '1: :_postman_simulation_commands' \
2074
2369
  '*::arg:->args'
2075
2370
  case $state in
2076
2371
  args)
2077
2372
  case $words[1] in
2078
- run) _postman_simulate_run ;;
2373
+ create) _postman_simulation_create ;;
2374
+ list) _postman_simulation_list ;;
2375
+ get) _postman_simulation_get ;;
2376
+ run) _postman_simulation_run ;;
2377
+ push) _postman_simulation_push ;;
2378
+ deploy) _postman_simulation_deploy ;;
2379
+ delete) _postman_simulation_delete ;;
2079
2380
  esac
2080
2381
  ;;
2081
2382
  esac
2082
2383
  }
2083
2384
 
2084
- _postman_simulate_commands() {
2385
+ _postman_simulation_commands() {
2085
2386
  local -a sub
2086
2387
  sub=(
2087
- 'run:Start mocks with fault-injection scenarios defined in a .sim.yaml file'
2388
+ 'create:Create a simulation that serves several mocks behind one address'
2389
+ 'list:List the simulations in your repository or Postman cloud workspace'
2390
+ 'get:Show a simulation'\''s details using its .sim.yaml path if it lives in your repository, or its id if it lives in Postman cloud.'
2391
+ 'run:Serve a simulation'\''s mocks on one local port, routing each by its routeKey. Pass a .sim.yaml path (local) or a Postman simulation id (fetched and run locally).'
2392
+ 'push:Upload a simulation from your repository to Postman cloud (creates it the first time, updates it after). Its member mocks are pushed too.'
2393
+ 'deploy:Turn a simulation in Postman cloud into a live mock server others can call over the internet.'
2394
+ 'delete:Delete a simulation using its .sim.yaml path if it lives in your repository, or its id if it lives in Postman cloud. Cannot be undone.'
2088
2395
  )
2089
- _describe -t commands 'simulate command' sub
2396
+ _describe -t commands 'simulation command' sub
2397
+ }
2398
+
2399
+ _postman_simulation_create() {
2400
+ _arguments \
2401
+ '(-n --name)'{-n,--name}'[Name for the simulation]:name' \
2402
+ '--mock[A mock to include (repeatable). Use a local mock path to build the simulation in your repository, or a Postman mock id to create it in Postman cloud. Set its address with <mockIdOrPath>=<routeKey>. (default\: \[\])]:mockIdOrPath:_files -g "*.json"' \
2403
+ '--routing[How callers reach each mock\: header or path (default path)]:header|path' \
2404
+ '(-o --output)'{-o,--output}'[Where to save the simulation file in your repository, a file or folder (defaults to postman/simulations)]:path:_files -g "*.json"' \
2405
+ '--force[Overwrite the simulation file if it already exists]' \
2406
+ '(-w --workspace)'{-w,--workspace}'[Postman cloud workspace to create the simulation in, by id (defaults to the workspace already linked to this project)]:id' \
2407
+ '--api-key[Postman API key (defaults to your `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
2408
+ '(-h --help)'{-h,--help}'[display help for command]'
2409
+ }
2410
+
2411
+ _postman_simulation_list() {
2412
+ _arguments \
2413
+ '(-w --workspace)'{-w,--workspace}'[Postman cloud workspace whose simulations to list, by id (defaults to the workspace already linked to this project)]:id' \
2414
+ '--api-key[Postman API key (defaults to your `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
2415
+ '--json[Print the list as machine-readable data instead of a table]' \
2416
+ '(-h --help)'{-h,--help}'[display help for command]' \
2417
+ '*:pathOrDir:_files -g "*.json"'
2418
+ }
2419
+
2420
+ _postman_simulation_get() {
2421
+ _arguments \
2422
+ '--api-key[Postman API key (defaults to your `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
2423
+ '--json[Print the details as machine-readable data instead of a table]' \
2424
+ '(-h --help)'{-h,--help}'[display help for command]' \
2425
+ '*:simIdOrPath:'
2426
+ }
2427
+
2428
+ _postman_simulation_run() {
2429
+ _arguments \
2430
+ '(-e --environment)'{-e,--environment}'[Path to a file of environment variables for the mocks (relative or absolute)]:path:_files -g "*.json"' \
2431
+ '(-g --globals)'{-g,--globals}'[Path to a file of global variables for the mocks (relative or absolute)]:path:_files -g "*.json"' \
2432
+ '(-p --port)'{-p,--port}'[Port to serve on (e.g. 4010), or "auto" for a free one (default 3000)]:port' \
2433
+ '--dataset[Dataset file or folder to load for pm.datasets (repeatable) (default\: \[\])]:pathOrDir:_files -g "*.json"' \
2434
+ '(-w --workspace)'{-w,--workspace}'[Workspace for recording start history. Derived from a simulation id or the linked project; needed only for an unlinked .sim.yaml path.]:id' \
2435
+ '--simulation[Simulation id to record start history against for a .sim.yaml path (a local file has only a name). Not needed when running by simulation id, or when the file is linked to a cloud simulation (via workspace push).]:id' \
2436
+ '--api-key[Postman API key (defaults to your `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
2437
+ '--no-history[Do not record this run in the simulation'\''s start history]' \
2438
+ '--output[Live output format\: auto (default, human-readable logs) or ndjson (one JSON event per line on stdout, ending with a "summary" event — for CI or other non-interactive use) (default\: "auto")]:format' \
2439
+ '--proxy[Serve the mocks behind a local HTTP(S) forward proxy instead of one routed port, so a repo under test can point HTTP_PROXY/HTTPS_PROXY at it and reach each mock by hostname without code changes. Requires a simulation.yaml (routing config), not a .sim.yaml.]' \
2440
+ '--proxy-port[Port for the proxy server. Distinct from --port, which is the one-port run'\''s own port. (default\: 7001)]:n' \
2441
+ '--scenario[Scenario each mock serves, sent as both pm-mock-scenario and x-mock-scenario. (default\: "default")]:name' \
2442
+ '--session[Session id to select via the x-mock-session header (default\: a generated id).]:id' \
2443
+ '--log-format[Proxy request log format\: text or json. (default\: "text")]:format' \
2444
+ '--log-body[Also log each response body (truncated). Buffers full responses in memory; meant for temporary debugging, not left on by default.]' \
2445
+ '--doctor[Start the proxy, probe each available HTTP client (fetch/undici/axios/node-fetch) to confirm it honors HTTP_PROXY/HTTPS_PROXY, then exit.]' \
2446
+ '(-h --help)'{-h,--help}'[display help for command]' \
2447
+ '*:simIdOrPath:'
2448
+ }
2449
+
2450
+ _postman_simulation_push() {
2451
+ _arguments \
2452
+ '(-w --workspace)'{-w,--workspace}'[Postman cloud workspace to upload to, by id (defaults to the workspace already linked to this project)]:id' \
2453
+ '--api-key[Postman API key (defaults to your `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
2454
+ '(-h --help)'{-h,--help}'[display help for command]' \
2455
+ '*:simPath:'
2456
+ }
2457
+
2458
+ _postman_simulation_deploy() {
2459
+ _arguments \
2460
+ '(-w --workspace)'{-w,--workspace}'[Postman cloud workspace that will own the server, by id (defaults to the workspace already linked to this project)]:id' \
2461
+ '(-n --name)'{-n,--name}'[Name for the mock server (you are asked for one if you skip this)]:name' \
2462
+ '(-s --slug)'{-s,--slug}'[Short label used in the server'\''s web address, e.g. "my-sim" (you are asked for one if you skip this)]:slug' \
2463
+ '--private[Require a Postman API key to reach the server. Public by default.]' \
2464
+ '(-y --yes)'{-y,--yes}'[Use the defaults and skip all questions (public)]' \
2465
+ '--api-key[Postman API key (defaults to your `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
2466
+ '(-h --help)'{-h,--help}'[display help for command]' \
2467
+ '*:simId:'
2090
2468
  }
2091
2469
 
2092
- _postman_simulate_run() {
2470
+ _postman_simulation_delete() {
2093
2471
  _arguments \
2094
- '(-w --workspace)'{-w,--workspace}'[Workspace that owns the run, for recording its simulation start history.]:id' \
2095
- '--simulation[Simulation id to record start history against (a local .sim.yaml has only a name). Required, with --workspace, to record history.]:id' \
2096
- '--api-key[Postman API key for recording start history (defaults to your `postman login` session).]:key:_files -g "*.(pem|crt|key)"' \
2097
- '--no-history[Do not record this run in the simulation'\''s start history.]' \
2472
+ '(-y --yes)'{-y,--yes}'[Delete without asking for confirmation first]' \
2473
+ '--api-key[Postman API key, used with a Postman cloud id (defaults to your `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
2098
2474
  '(-h --help)'{-h,--help}'[display help for command]' \
2099
- '*:filepath:_files -g "*.json"'
2475
+ '*:simIdOrPath:'
2100
2476
  }
2101
2477
 
2102
2478
  _postman_describe() {
@@ -2713,7 +3089,7 @@ _postman_dataset_get() {
2713
3089
 
2714
3090
  _postman_dataset_query() {
2715
3091
  _arguments \
2716
- '(-q --query)'{-q,--query}'[SQL query to execute (e.g. "SELECT * FROM source_users LIMIT 10")]:sql' \
3092
+ '(-q --query)'{-q,--query}'[SQL query to execute (e.g. "SELECT * FROM users LIMIT 10")]:sql' \
2717
3093
  '(-s --source)'{-s,--source}'[Execute directly against a database datasource; without --source, use federated SQLite]:nameOrIdOrSlug' \
2718
3094
  '(-p --param)'{-p,--param}'[Bind values to $1, $2, ... in order; pass multiple values after -p or repeat -p]:value...' \
2719
3095
  '--api-key[Postman API key (defaults to the `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
@@ -2787,14 +3163,14 @@ _postman_dataset_source_list() {
2787
3163
  _postman_dataset_source_add() {
2788
3164
  _arguments \
2789
3165
  '(-d --dataset)'{-d,--dataset}'[Dataset to add the source to; positional target is also accepted for v1.45 compatibility]:datasetPathOrId' \
2790
- '(-n --name)'{-n,--name}'[Logical name for the source (becomes the SQL table name)]:name' \
3166
+ '(-n --name)'{-n,--name}'[Logical name for the source (becomes the SQL table name when it loads a file or a database --table). Required for every source except a spreadsheet, whose worksheets are each named source_<worksheet>]:name' \
2791
3167
  '--source-id[Override the generated source id (local dataset only)]:uuid' \
2792
- '--format[Use this format instead of extension/type inference; file contents are not sniffed]:csv|json|mysql|postgres|sqlserver' \
3168
+ '--format[Use this format instead of extension/type inference; file contents are not sniffed. A spreadsheet (xlsx/xls/ods) is added as one source per worksheet, each named source_<worksheet>]:csv|json|xlsx|xls|ods|jdbc|mysql|postgres|sqlserver' \
2793
3169
  '--type[Source kind; local is inferred from --file, jdbc from --driver-jar]:local|mysql|postgresql|sqlserver|jdbc' \
2794
- '--file[Path to a local CSV/JSON file (absolute or cwd-relative)]:path:_files -g "*.json"' \
3170
+ '--file[Path to a local CSV/JSON/spreadsheet file (absolute or cwd-relative)]:path:_files -g "*.json"' \
2795
3171
  '--ref-only[Reference the file in place; do NOT copy into data_dir (local dataset)]' \
2796
3172
  '--force[When copying, overwrite an existing file at the destination (local dataset)]' \
2797
- '--upload[Cloud dataset only\: upload --file as a postmancloudfile source (runs via /exec). Without --upload, --file is registered as a local_filesystem csv/json source read by the local engine.]' \
3173
+ '--upload[Cloud dataset only\: upload --file as a postmancloudfile source (runs via /exec). Without --upload, --file is registered as a local_filesystem source read by the local engine. Either way a cloud dataset takes csv/json only — add a spreadsheet to a local .dataset.yaml, where each worksheet becomes its own source.]' \
2798
3174
  '--driver-jar[JDBC driver JAR(s). Repeatable, or pass several after one flag]:path...:_files -g "*.json"' \
2799
3175
  '--driver-class[Driver class. Auto-resolved when the JAR contains exactly one]:fqcn' \
2800
3176
  '--driver-name[Label for this driver type (defaults to the JAR filename)]:label' \
@@ -2813,7 +3189,7 @@ _postman_dataset_source_add() {
2813
3189
  '--user[DB user. WARNING\: a literal value is visible in `ps` output and shell history, and is stored in clear text in the dataset YAML (local) or sent in the request body (cloud). Prefer a Shared Vault reference.]:user' \
2814
3190
  '--password[DB password. WARNING\: a literal value is visible in `ps` output and shell history, and is stored in clear text in the dataset YAML (local) or sent in the request body (cloud). Prefer a Shared Vault reference.]:password' \
2815
3191
  '--database[DB database name]:db' \
2816
- '--table[DB table name (required for sqlserver)]:table' \
3192
+ '--table[DB table to load (required for sqlserver). Leave it out to connect to the whole database; query it with `dataset query -s <source>` or `dataset view create -s <source>`]:table' \
2817
3193
  '--ssh-host[SSH bastion host]:host' \
2818
3194
  '--ssh-port[SSH bastion port]:port' \
2819
3195
  '--ssh-user[SSH bastion user]:user' \
@@ -2845,7 +3221,7 @@ _postman_dataset_source_update() {
2845
3221
  _arguments \
2846
3222
  '(-d --dataset)'{-d,--dataset}'[Dataset the source belongs to — a local .dataset.yaml path or a cloud dataset id]:datasetPathOrId' \
2847
3223
  '(-n --name)'{-n,--name}'[Rename the source]:name' \
2848
- '--format[Change the format (local dataset only; cloud source formats are immutable)]:csv|json|mysql|postgres|sqlserver' \
3224
+ '--format[Change the format (local dataset only; cloud source formats are immutable). A spreadsheet format is not offered here\: this command changes the format field alone and cannot pin a worksheet, so the source would not compile. Add the workbook with `dataset source add` instead, which makes one worksheet-pinned source per sheet]:csv|json|jdbc|mysql|postgres|sqlserver' \
2849
3225
  '--file[Replace the source file (local dataset only; cloud file replacement is unsupported)]:path:_files -g "*.json"' \
2850
3226
  '--ref-only[With --file, reference in place instead of copying (local dataset only)]' \
2851
3227
  '--force[With --file, overwrite the copied destination (local dataset only)]' \
@@ -2866,7 +3242,7 @@ _postman_dataset_source_update() {
2866
3242
  '--user[Update DB user. WARNING\: a literal value is visible in `ps` output and shell history, and is stored in clear text in the dataset YAML (local) or sent in the request body (cloud). Prefer a Shared Vault reference.]:user' \
2867
3243
  '--password[Update DB password. WARNING\: a literal value is visible in `ps` output and shell history, and is stored in clear text in the dataset YAML (local) or sent in the request body (cloud). Prefer a Shared Vault reference.]:password' \
2868
3244
  '--database[Update DB database name]:db' \
2869
- '--table[Update DB table name]:table' \
3245
+ '--table[Update the DB table to load. A source without a table connects to the whole database; query it with `dataset query -s <source>` or `dataset view create -s <source>`]:table' \
2870
3246
  '--ssh-host[Update SSH bastion host]:host' \
2871
3247
  '--ssh-port[Update SSH bastion port]:port' \
2872
3248
  '--ssh-user[Update SSH bastion user]:user' \
@@ -3023,6 +3399,7 @@ _postman_dependency() {
3023
3399
  args)
3024
3400
  case $words[1] in
3025
3401
  add) _postman_dependency_add ;;
3402
+ get) _postman_dependency_get ;;
3026
3403
  list) _postman_dependency_list ;;
3027
3404
  install) _postman_dependency_install ;;
3028
3405
  update) _postman_dependency_update ;;
@@ -3036,6 +3413,7 @@ _postman_dependency_commands() {
3036
3413
  local -a sub
3037
3414
  sub=(
3038
3415
  'add:Add a Postman collection, environment, or mock as a workspace dependency.'
3416
+ 'get:Show a declared workspace dependency from .postman/resources.yaml.'
3039
3417
  'list:List the workspace dependencies declared in .postman/resources.yaml.'
3040
3418
  'install:Materialise the dependencies declared in .postman/resources.yaml (all, or one).'
3041
3419
  'update:Refresh declared dependencies to the latest content from their source (all, or one).'
@@ -3053,6 +3431,14 @@ _postman_dependency_add() {
3053
3431
  '*:nameOrId:'
3054
3432
  }
3055
3433
 
3434
+ _postman_dependency_get() {
3435
+ _arguments \
3436
+ '--type[Only match dependencies of this type (collection, environment, or mock).]:type' \
3437
+ '--json[Output the result as JSON.]' \
3438
+ '(-h --help)'{-h,--help}'[display help for command]' \
3439
+ '*:nameOrId:'
3440
+ }
3441
+
3056
3442
  _postman_dependency_list() {
3057
3443
  _arguments \
3058
3444
  '--type[Only list dependencies of this type (collection, environment, or mock).]:type' \
@@ -3085,6 +3471,52 @@ _postman_dependency_remove() {
3085
3471
  '*:nameOrId:'
3086
3472
  }
3087
3473
 
3474
+ _postman_secret() {
3475
+ local context state state_descr line
3476
+ typeset -A opt_args
3477
+ _arguments -C \
3478
+ '(-h --help)'{-h,--help}'[display help for command]' \
3479
+ '1: :_postman_secret_commands' \
3480
+ '*::arg:->args'
3481
+ case $state in
3482
+ args)
3483
+ case $words[1] in
3484
+ create) _postman_secret_create ;;
3485
+ list) _postman_secret_list ;;
3486
+ esac
3487
+ ;;
3488
+ esac
3489
+ }
3490
+
3491
+ _postman_secret_commands() {
3492
+ local -a sub
3493
+ sub=(
3494
+ 'create:Create a secret in a team'\''s shared vault.'
3495
+ 'list:List the secrets in a workspace'\''s shared vault\: key, secret id, vault id, and allowed domains.'
3496
+ )
3497
+ _describe -t commands 'secret command' sub
3498
+ }
3499
+
3500
+ _postman_secret_create() {
3501
+ _arguments \
3502
+ '--team-id[Team id (defaults to your authenticated profile'\''s team; must be your own team — the vault rejects any other team id, even one you otherwise have access to)]:id' \
3503
+ '(-w --workspace)'{-w,--workspace}'[Postman workspace ID (falls back to .postman/resources.yaml or .postman/config.json)]:workspaceId' \
3504
+ '--api-key[Postman API key]:key:_files -g "*.(pem|crt|key)"' \
3505
+ '--terminal[Enter one secret value through the terminal instead of the default browser form]' \
3506
+ '--value-stdin[Read the secret value from stdin instead of prompting; implies --terminal]' \
3507
+ '--timeout[Seconds to wait for the browser form (default 300)]:seconds' \
3508
+ '(-h --help)'{-h,--help}'[display help for command]' \
3509
+ '*:keys...:_files -g "*.json"'
3510
+ }
3511
+
3512
+ _postman_secret_list() {
3513
+ _arguments \
3514
+ '(-w --workspace)'{-w,--workspace}'[Postman workspace ID (falls back to .postman/resources.yaml or .postman/config.json)]:workspaceId' \
3515
+ '--api-key[Postman API key]:key:_files -g "*.(pem|crt|key)"' \
3516
+ '--json[Print the list as machine-readable JSON.]' \
3517
+ '(-h --help)'{-h,--help}'[display help for command]'
3518
+ }
3519
+
3088
3520
  # When loaded via fpath + compinit, the file body becomes the function body of
3089
3521
  # `_postman`. In that case `funcstack[1]` is `_postman` and we must actually
3090
3522
  # invoke the completion. When sourced directly, this is a no-op — `_postman`