postman-cli-completion 1.75.0 → 1.77.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.75.0)
3
+ # Zsh completion for Postman CLI (postman v1.77.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
@@ -163,6 +163,7 @@ _postman_collection() {
163
163
  publish) _postman_collection_publish ;;
164
164
  generate) _postman_collection_generate ;;
165
165
  sync) _postman_collection_sync ;;
166
+ share) _postman_collection_share ;;
166
167
  request) _postman_collection_request ;;
167
168
  folder) _postman_collection_folder ;;
168
169
  example) _postman_collection_example ;;
@@ -186,6 +187,7 @@ _postman_collection_commands() {
186
187
  'publish:Publish a cloud collection'\''s documentation (or request Community Manager approval).'
187
188
  'generate:Generate artifacts from a collection.'
188
189
  'sync:Sync artifacts generated from a collection.'
190
+ 'share:Grant a role on a collection to one or more people.'
189
191
  'request:Add, get, update, or remove requests in a local v3 collection.'
190
192
  'folder:Add, get, update, or remove folders in a local v3 collection.'
191
193
  'example:Add, update, remove, get, or list examples (saved responses) under a request.'
@@ -200,6 +202,7 @@ _postman_collection_new() {
200
202
  _arguments \
201
203
  '(-w --workspace)'{-w,--workspace}'[Create the collection in a cloud Postman workspace instead of scaffolding it locally. Required when the current directory is not a local Postman workspace.]:workspaceId' \
202
204
  '--force[Rewrite the definition of an existing local collection. Existing request files are left alone.]' \
205
+ '(-m --message)'{-m,--message}'[Short note on what changed, like a commit message (max 500 characters). Shown on the workspace activity feed. Cloud mode (--workspace) only.]:text' \
203
206
  '--verbose[Verbose output]' \
204
207
  '--json[JSON output]' \
205
208
  '(-h --help)'{-h,--help}'[display help for command]' \
@@ -242,6 +245,7 @@ _postman_collection_delete() {
242
245
  _arguments \
243
246
  '(-y --yes)'{-y,--yes}'[Delete without asking for confirmation first]' \
244
247
  '--api-key[Postman API key, used when deleting a cloud collection]:key:_files -g "*.(pem|crt|key)"' \
248
+ '(-m --message)'{-m,--message}'[Short note on why, like a commit message (max 500 characters). Shown on the workspace activity feed. Cloud collections only.]:text' \
245
249
  '--verbose[Verbose output]' \
246
250
  '--json[Output the result as JSON]' \
247
251
  '(-h --help)'{-h,--help}'[display help for command]' \
@@ -327,6 +331,17 @@ _postman_collection_sync_spec() {
327
331
  '*:collection:_files -g "*.json"'
328
332
  }
329
333
 
334
+ _postman_collection_share() {
335
+ _arguments \
336
+ '--user[Who to share with. Repeatable, and each value may be a comma-separated list. A value containing @ is treated as an email address, anything else as a Postman user id.]:email|id' \
337
+ '--role[The role to grant. (default\: "viewer")]:viewer|editor' \
338
+ '--json[Print the outcome as machine-readable JSON.]' \
339
+ '--timeout[Milliseconds to wait for Postman. Defaults to 30000.]:ms' \
340
+ '--api-key[Postman API key (defaults to your `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
341
+ '(-h --help)'{-h,--help}'[display help for command]' \
342
+ '*:id:'
343
+ }
344
+
330
345
  _postman_collection_request() {
331
346
  local context state state_descr line
332
347
  typeset -A opt_args
@@ -364,6 +379,7 @@ _postman_collection_request_add() {
364
379
  '--folder[Folder within the collection, e.g. "Users/Admin". Defaults to the root.]:id|name|path' \
365
380
  '--type[Request type\: http, graphql, grpc, websocket, socketio. (default\: "http")]:type' \
366
381
  '(-w --workspace)'{-w,--workspace}'[Target a Postman cloud workspace by id (cloud mode).]:id' \
382
+ '(-m --message)'{-m,--message}'[Short note on what changed, like a commit message (max 500 characters). Shown on the workspace activity feed. Cloud mode only.]:text' \
367
383
  '--json[JSON output.]' \
368
384
  '(-h --help)'{-h,--help}'[display help for command]' \
369
385
  '*:request-name:'
@@ -396,6 +412,7 @@ _postman_collection_request_update() {
396
412
  '--scripts[Replace scripts. event is prerequest or test; script is @file, - for stdin, or inline. Repeatable; any request type. (default\: \[\])]:event\:script' \
397
413
  '(-w --workspace)'{-w,--workspace}'[Target a Postman cloud workspace by id (cloud mode).]:id' \
398
414
  '--type[Request type for cloud mode\: http, graphql, grpc, websocket, socketio. (default\: "http")]:type' \
415
+ '(-m --message)'{-m,--message}'[Short note on what changed, like a commit message (max 500 characters). Shown on the workspace activity feed. Cloud mode only.]:text' \
399
416
  '--json[JSON output.]' \
400
417
  '(-h --help)'{-h,--help}'[display help for command]' \
401
418
  '*:request:'
@@ -407,6 +424,7 @@ _postman_collection_request_rm() {
407
424
  '--folder[Folder to scope the request selector, e.g. "Users/Admin" (local\: name/path; cloud\: id).]:id|name|path' \
408
425
  '(-w --workspace)'{-w,--workspace}'[Target a Postman cloud workspace by id (cloud mode).]:id' \
409
426
  '--type[Request type for cloud mode\: http, graphql, grpc, websocket, socketio. (default\: "http")]:type' \
427
+ '(-m --message)'{-m,--message}'[Short note on what changed, like a commit message (max 500 characters). Shown on the workspace activity feed. Cloud mode only.]:text' \
410
428
  '--json[JSON output.]' \
411
429
  '(-h --help)'{-h,--help}'[display help for command]' \
412
430
  '*:request:'
@@ -448,6 +466,7 @@ _postman_collection_folder_add() {
448
466
  '--collection[Target collection\: name, directory, id, cloud id, or path. Required.]:id|name' \
449
467
  '--folder[Parent folder within the collection, e.g. "Users/Admin". Defaults to the root.]:id|name|path' \
450
468
  '(-w --workspace)'{-w,--workspace}'[Target a Postman cloud workspace by id (cloud mode).]:id' \
469
+ '(-m --message)'{-m,--message}'[Short note on what changed, like a commit message (max 500 characters). Shown on the workspace activity feed. Cloud mode only.]:text' \
451
470
  '--json[JSON output.]' \
452
471
  '(-h --help)'{-h,--help}'[display help for command]' \
453
472
  '*:folder-name:'
@@ -472,6 +491,7 @@ _postman_collection_folder_update() {
472
491
  '--auth[Folder auth\: none, inherit, bearer\:TOKEN, basic\:USER\:PASS, apikey\:KEY\:VALUE\[\:header|query\], oauth2\:TOKEN.]:spec' \
473
492
  '--scripts[Replace folder scripts. event is prerequest or test; script is @file, - for stdin, or inline. Repeatable. (default\: \[\])]:event\:script' \
474
493
  '(-w --workspace)'{-w,--workspace}'[Target a Postman cloud workspace by id (cloud mode).]:id' \
494
+ '(-m --message)'{-m,--message}'[Short note on what changed, like a commit message (max 500 characters). Shown on the workspace activity feed. Cloud mode only.]:text' \
475
495
  '--json[JSON output.]' \
476
496
  '(-h --help)'{-h,--help}'[display help for command]' \
477
497
  '*:folder:'
@@ -483,6 +503,7 @@ _postman_collection_folder_rm() {
483
503
  '--folder[Parent folder to scope the selector, e.g. "Users" (local\: name/path; cloud\: id).]:id|name|path' \
484
504
  '(-y --yes)'{-y,--yes}'[Skip the confirmation prompt (required when stdout is not a TTY).]' \
485
505
  '(-w --workspace)'{-w,--workspace}'[Target a Postman cloud workspace by id (cloud mode).]:id' \
506
+ '(-m --message)'{-m,--message}'[Short note on what changed, like a commit message (max 500 characters). Shown on the workspace activity feed. Cloud mode only.]:text' \
486
507
  '--json[JSON output.]' \
487
508
  '(-h --help)'{-h,--help}'[display help for command]' \
488
509
  '*:folder:'
@@ -528,6 +549,7 @@ _postman_collection_example_add() {
528
549
  '--folder[Folder to scope the request selector, e.g. "Users/Admin".]:id|name|path' \
529
550
  '--type[Example type\: http (default). (default\: "http")]:type' \
530
551
  '(-w --workspace)'{-w,--workspace}'[Target a Postman cloud workspace by id (cloud mode).]:id' \
552
+ '(-m --message)'{-m,--message}'[Short note on what changed, like a commit message (max 500 characters). Shown on the workspace activity feed. Cloud mode only.]:text' \
531
553
  '--json[JSON output.]' \
532
554
  '(-h --help)'{-h,--help}'[display help for command]' \
533
555
  '*:example-name:'
@@ -553,6 +575,7 @@ _postman_collection_example_update() {
553
575
  '--clear-request[Remove the example.request snapshot.]' \
554
576
  '(-w --workspace)'{-w,--workspace}'[Target a Postman cloud workspace by id (cloud mode).]:id' \
555
577
  '--type[Example type for cloud mode\: http. (default\: "http")]:type' \
578
+ '(-m --message)'{-m,--message}'[Short note on what changed, like a commit message (max 500 characters). Shown on the workspace activity feed. Cloud mode only.]:text' \
556
579
  '--json[JSON output.]' \
557
580
  '(-h --help)'{-h,--help}'[display help for command]' \
558
581
  '*:example:'
@@ -565,6 +588,7 @@ _postman_collection_example_rm() {
565
588
  '--folder[Folder to scope the request selector.]:id|name|path' \
566
589
  '(-w --workspace)'{-w,--workspace}'[Target a Postman cloud workspace by id (cloud mode).]:id' \
567
590
  '--type[Example type for cloud mode\: http. (default\: "http")]:type' \
591
+ '(-m --message)'{-m,--message}'[Short note on what changed, like a commit message (max 500 characters). Shown on the workspace activity feed. Cloud mode only.]:text' \
568
592
  '--json[JSON output.]' \
569
593
  '(-h --help)'{-h,--help}'[display help for command]' \
570
594
  '*:example:'
@@ -653,8 +677,7 @@ _postman_collection_run() {
653
677
  '--cookie-jar[Specify the path to a custom cookie jar (serialized tough-cookie JSON)]:path:_files -g "*.json"' \
654
678
  '--export-cookie-jar[Exports the cookie jar to a file after completing the run]:path:_files -g "*.json"' \
655
679
  '--verbose[Show detailed information of collection run and each request sent]' \
656
- '--mock[Start a mock server for the run, its path if it lives in your repository (relative or absolute, e.g. ./postman/mocks/orders) or its id if it lives in Postman cloud (fetched then run locally). An id needs `postman login` (or --postman-api-key).]:pathOrId:_files -g "*.json"' \
657
- '--port[Port for the --mock server or --simulation (e.g. 4010), or "auto" for a free one. Defaults to the configured port. Only valid with --mock or --simulation.]:port' \
680
+ '--port[Port for the --simulation server (e.g. 4010), or "auto" for a free one. Defaults to the configured port. Only valid with --simulation.]:port' \
658
681
  '--use-mock[Redirect requests for a URL or {{variable}} to a mock during the run. Format\: "<url> mock|mock-server\:<path|id> \[scenario\]". Repeat the flag to redirect several URLs (one --use-mock each). Use "mock\:<path>" for a mock in your repository (path relative or absolute, e.g. ./postman/mocks/orders), "mock\:<id>" for a mock in Postman cloud (fetched then run locally), or "mock-server\:<id>" to send requests to a deployed mock server. An id needs `postman login` (or --postman-api-key). The optional third field picks a scenario (defaults to "default"). (default\: \[\])]:mapping' \
659
682
  '--simulation[Run the mocks in a simulation for the run, its .sim.yaml path if it lives in your repository (relative or absolute, e.g. ./postman/simulations/checkout.sim.yaml) or its id if it lives in Postman cloud (fetched then run locally). Members share one port and are addressed by routeKey (e.g. http\://localhost\:3000/<routeKey>/path). An id needs `postman login` (or --postman-api-key).]:pathOrId:_files -g "*.json"' \
660
683
  '(-w --workspace)'{-w,--workspace}'[Workspace to record the --simulation run'\''s start history against. Defaults to the simulation'\''s own workspace (when run by id) or the linked project'\''s workspace.]:workspaceId' \
@@ -726,7 +749,7 @@ _postman_dataset_query() {
726
749
  '(-s --source)'{-s,--source}'[Execute directly against a database datasource; without --source, use federated SQLite]:nameOrIdOrSlug' \
727
750
  '(-p --param)'{-p,--param}'[Bind values to $1, $2, ... in order; pass multiple values after -p or repeat -p]:value...' \
728
751
  '--api-key[Postman API key (defaults to the `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
729
- '--json[Output rows as JSON instead of a table]' \
752
+ '--json[Output rows as JSON instead of a table; a failure prints a JSON error on stdout]' \
730
753
  '--debug[Include safe classified dataset diagnostics]' \
731
754
  '(-h --help)'{-h,--help}'[display help for command]' \
732
755
  '*:datasetPathOrId:'
@@ -808,19 +831,20 @@ _postman_dataset_source_add() {
808
831
  '--driver-class[Driver class. Auto-resolved when the JAR contains exactly one]:fqcn' \
809
832
  '--driver-name[Label for this driver type (defaults to the JAR filename)]:label' \
810
833
  '--url-template[JDBC URL with {{placeholders}}, e.g. jdbc\:postgresql\://{{host}}\:{{port}}/{{database}}]:template' \
811
- '--var[Value for a {{placeholder}}. Repeatable. Use vault\:<vaultId>/<secretId> for a secret. 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.]:name=value...' \
812
- '--prop[Driver connection property. Repeatable. Same vault\: syntax as --var]:name=value...' \
813
- '--vars-file[JSON object of --var values; "-" reads stdin. Supports {"$vaultId"\:..,"$secretId"\:..} objects, and keeps secrets out of argv entirely]:path:_files -g "*.json"' \
834
+ '--var[Value for a {{placeholder}}. Repeatable. Accepts a secret reference\: vault\:<KEY> (preferred), vault\:<vaultId>/<secretId>, or env\:<NAME> — see "Secrets" below. 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).]:name=value...' \
835
+ '--prop[Driver connection property. Repeatable. Same secret syntax as --var]:name=value...' \
836
+ '--vars-file[JSON object of values; "-" reads stdin. Keys are host, port, user, password, database (mysql/postgresql/sqlserver), or --var names for jdbc, with optional "vars"/"props" objects for template variables / connection properties. Values take the same secret syntax, or {"$vaultId"\:..,"$secretId"\:..} objects, and keep secrets out of argv entirely]:path:_files -g "*.json"' \
837
+ '(-w --workspace)'{-w,--workspace}'[Workspace whose Shared Vault resolves vault\:<KEY> (falls back to .postman/resources.yaml in the current directory)]:workspaceId' \
814
838
  '--from-source[Reuse another source'\''s driver JAR, class and URL template]:name' \
815
839
  '--java-path[Java runtime to use. Machine-local only - never written to the dataset. Also read from POSTMAN_JDBC_JAVA_PATH]:path:_files -g "*.json"' \
816
840
  '--no-test[Skip the pre-write connection test. Note that resolving the driver class still starts a JVM — on a machine with no Java, pass --driver-class (or --from-source) too]' \
817
841
  '--ssh-target-host-variable[Template variable holding the tunnelled host (inferred when omitted)]:name' \
818
842
  '--ssh-target-port-variable[Template variable holding the tunnelled port (inferred when omitted)]:name' \
819
843
  '--json[Emit the result as JSON instead of prose]' \
820
- '--host[DB host (mysql/postgresql/sqlserver)]:host' \
844
+ '--host[DB host (mysql/postgresql/sqlserver). Accepts a secret reference\: vault\:<KEY> (preferred), vault\:<vaultId>/<secretId>, or env\:<NAME> — see "Secrets" below.]:host' \
821
845
  '--port[DB port (defaults to 1433 for sqlserver)]:port' \
822
- '--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' \
823
- '--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' \
846
+ '--user[DB user. Accepts a secret reference\: vault\:<KEY> (preferred), vault\:<vaultId>/<secretId>, or env\:<NAME> — see "Secrets" below. 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).]:user' \
847
+ '--password[DB password. Accepts a secret reference\: vault\:<KEY> (preferred), vault\:<vaultId>/<secretId>, or env\:<NAME> — see "Secrets" below. 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).]:password' \
824
848
  '--database[DB database name]:db' \
825
849
  '--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' \
826
850
  '--ssh-host[SSH bastion host]:host' \
@@ -862,18 +886,19 @@ _postman_dataset_source_update() {
862
886
  '--driver-class[Replace the JDBC driver class]:fqcn' \
863
887
  '--driver-name[Rename the JDBC driver type label]:label' \
864
888
  '--url-template[Replace the JDBC URL template]:template' \
865
- '--var[Set a JDBC template variable. Merges onto the existing values. Use vault\:<vaultId>/<secretId> for a secret. 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.]:name=value...' \
866
- '--prop[Set a JDBC connection property. Merges, same vault\: syntax]:name=value...' \
889
+ '--var[Set a JDBC template variable. Merges onto the existing values. Accepts a secret reference\: vault\:<KEY> (preferred), vault\:<vaultId>/<secretId>, or env\:<NAME> — see "Secrets" below. 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).]:name=value...' \
890
+ '--prop[Set a JDBC connection property. Merges, same secret syntax]:name=value...' \
867
891
  '--unset-var[Remove a JDBC template variable. Merging alone can never remove a key]:name...' \
868
892
  '--unset-prop[Remove a JDBC connection property]:name...' \
869
- '--vars-file[JSON object of --var values; "-" reads stdin]:path:_files -g "*.json"' \
893
+ '--vars-file[JSON object of values to merge; "-" reads stdin. Keys are host, port, user, password, database (mysql/postgresql/sqlserver), or --var names for jdbc, with optional "vars"/"props" objects. Values take the same secret syntax]:path:_files -g "*.json"' \
894
+ '(-w --workspace)'{-w,--workspace}'[Workspace whose Shared Vault resolves vault\:<KEY> (falls back to .postman/resources.yaml in the current directory)]:workspaceId' \
870
895
  '--ssh-target-host-variable[Template variable holding the tunnelled host (JDBC)]:name' \
871
896
  '--ssh-target-port-variable[Template variable holding the tunnelled port (JDBC)]:name' \
872
897
  '--java-path[Java runtime for JDBC operations. Machine-local only]:path:_files -g "*.json"' \
873
- '--host[Update DB host (mysql/postgresql/sqlserver)]:host' \
898
+ '--host[Update DB host (mysql/postgresql/sqlserver). Accepts a secret reference\: vault\:<KEY> (preferred), vault\:<vaultId>/<secretId>, or env\:<NAME> — see "Secrets" below.]:host' \
874
899
  '--port[Update DB port]:port' \
875
- '--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' \
876
- '--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' \
900
+ '--user[Update DB user. Accepts a secret reference\: vault\:<KEY> (preferred), vault\:<vaultId>/<secretId>, or env\:<NAME> — see "Secrets" below. 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).]:user' \
901
+ '--password[Update DB password. Accepts a secret reference\: vault\:<KEY> (preferred), vault\:<vaultId>/<secretId>, or env\:<NAME> — see "Secrets" below. 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).]:password' \
877
902
  '--database[Update DB database name]:db' \
878
903
  '--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' \
879
904
  '--ssh-host[Update SSH bastion host]:host' \
@@ -1034,6 +1059,7 @@ _postman_environment() {
1034
1059
  new) _postman_environment_new ;;
1035
1060
  list) _postman_environment_list ;;
1036
1061
  get) _postman_environment_get ;;
1062
+ share) _postman_environment_share ;;
1037
1063
  delete) _postman_environment_delete ;;
1038
1064
  var) _postman_environment_var ;;
1039
1065
  lint) _postman_environment_lint ;;
@@ -1048,6 +1074,7 @@ _postman_environment_commands() {
1048
1074
  'new:Scaffold a local environment file, or create one in a Postman workspace with --workspace.'
1049
1075
  'list:List environments in a Postman workspace.'
1050
1076
  'get:Read an environment by ID or local environment file path.'
1077
+ 'share:Grant a role on a cloud environment to one or more people.'
1051
1078
  'delete:Delete an environment by ID or local environment file path. Prompts unless --yes is passed.'
1052
1079
  'var:Read and update environment variables.'
1053
1080
  'lint:Run linting on a local Postman environment at the given file or directory path.'
@@ -1083,6 +1110,17 @@ _postman_environment_get() {
1083
1110
  '*:environment:_files -g "*.json"'
1084
1111
  }
1085
1112
 
1113
+ _postman_environment_share() {
1114
+ _arguments \
1115
+ '--user[Who to share with. Repeatable, and each value may be a comma-separated list. A value containing @ is treated as an email address, anything else as a Postman user id.]:email|id' \
1116
+ '--role[The role to grant. (default\: "viewer")]:viewer|editor' \
1117
+ '--json[Print the outcome as machine-readable JSON.]' \
1118
+ '--timeout[Milliseconds to wait for Postman. Defaults to 30000.]:ms' \
1119
+ '--api-key[Postman API key (defaults to your `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
1120
+ '(-h --help)'{-h,--help}'[display help for command]' \
1121
+ '*:environmentId:_files -g "*.json"'
1122
+ }
1123
+
1086
1124
  _postman_environment_delete() {
1087
1125
  _arguments \
1088
1126
  '(-y --yes)'{-y,--yes}'[Delete without asking for confirmation first]' \
@@ -1437,7 +1475,7 @@ _postman_mock() {
1437
1475
  _postman_mock_commands() {
1438
1476
  local -a sub
1439
1477
  sub=(
1440
- 'generate:Generate a mock from a Postman collection or an OpenAPI file, or from a built-in sample shopping-cart mock (POST /cart/items, GET /cart, POST /checkout). Writes a local mock by default, or a cloud mock with --workspace.'
1478
+ 'generate:Generate a mock from a Postman collection or an OpenAPI file, or from a built-in sample shopping-cart mock (POST /cart/items, GET /cart, POST /checkout). Writes a local mock by default, or a cloud mock with --workspace. Add --deploy to also make it a live mock server.'
1441
1479
  'run:Start a mock using its path if it lives in your repository, or its id if it lives in Postman cloud (fetched and run locally).'
1442
1480
  'push:Upload a mock from your repository to Postman cloud (creates it the first time, updates it after).'
1443
1481
  'deploy:Turn a mock in Postman cloud into a live mock server others can call over the internet.'
@@ -1457,8 +1495,12 @@ _postman_mock_generate() {
1457
1495
  '--stateful[Generate pm.state-backed CRUD handlers (create/read/list/update/delete) instead of static example responses. Endpoints that are not CRUD-shaped stay static. Applies to collection or spec sources.]' \
1458
1496
  '--force[Overwrite the mock'\''s files if the target folder already has one]' \
1459
1497
  '(-u --update)'{-u,--update}'[Update an existing mock from the source instead of creating a new one. Path to the mock, relative or absolute, e.g. ./postman/mocks/orders. Cannot be used with --output.]:mockPath:_files -g "*.json"' \
1460
- '(-w --workspace)'{-w,--workspace}'[Save the mock to this Postman cloud workspace (by id) instead of your repository. Cannot be used with --output, --force, or --update.]:id' \
1461
- '--api-key[Postman API key to use with --workspace (defaults to your `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
1498
+ '(-w --workspace)'{-w,--workspace}'[Save the mock to this Postman cloud workspace (by id) instead of your repository. Cannot be used with --output, --force, or --update, except with --deploy, where it only picks the workspace.]:id' \
1499
+ '--deploy[After generating, upload the mock to Postman cloud and deploy it to a live mock server (private by default). Uses --workspace, else the workspace linked to this project.]' \
1500
+ '--public[With --deploy, let anyone with the link reach the server (default\: callers need an API key)]' \
1501
+ '(-s --slug)'{-s,--slug}'[With --deploy, the short label used in the server'\''s web address]:slug' \
1502
+ '--json[Print the result (with --deploy, the live server details) as machine-readable data instead of a summary]' \
1503
+ '--api-key[Postman API key to use with --workspace or --deploy (defaults to your `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
1462
1504
  '(-x --suppress-exit-code)'{-x,--suppress-exit-code}'[Always exit with code 0, even on failure]' \
1463
1505
  '(-h --help)'{-h,--help}'[display help for command]' \
1464
1506
  '*:sourcePath:'
@@ -1483,6 +1525,7 @@ _postman_mock_push() {
1483
1525
  _arguments \
1484
1526
  '(-w --workspace)'{-w,--workspace}'[Postman cloud workspace to upload to, by id (defaults to the workspace already linked to this project)]:id' \
1485
1527
  '--api-key[Postman API key (defaults to your `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
1528
+ '--json[Print the result as machine-readable data]' \
1486
1529
  '(-h --help)'{-h,--help}'[display help for command]' \
1487
1530
  '*:mockPath:_files -g "*.json"'
1488
1531
  }
@@ -1496,6 +1539,7 @@ _postman_mock_deploy() {
1496
1539
  '--auto-deploy[Update the live server automatically whenever the mock changes (off by default)]' \
1497
1540
  '(-y --yes)'{-y,--yes}'[Use the defaults and skip all questions (private, no auto-deploy)]' \
1498
1541
  '--api-key[Postman API key (defaults to your `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
1542
+ '--json[Print the live server details as machine-readable data instead of a summary (asks no questions)]' \
1499
1543
  '(-h --help)'{-h,--help}'[display help for command]' \
1500
1544
  '*:mockId:_files -g "*.json"'
1501
1545
  }
@@ -1503,7 +1547,7 @@ _postman_mock_deploy() {
1503
1547
  _postman_mock_get() {
1504
1548
  _arguments \
1505
1549
  '--api-key[Postman API key (defaults to your `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
1506
- '--json[Print the details as machine-readable data instead of a table]' \
1550
+ '--json[Print the details as machine-readable data instead of a summary]' \
1507
1551
  '(-h --help)'{-h,--help}'[display help for command]' \
1508
1552
  '*:mockIdOrPath:_files -g "*.json"'
1509
1553
  }
@@ -1535,6 +1579,7 @@ _postman_mock_delete() {
1535
1579
  _arguments \
1536
1580
  '(-y --yes)'{-y,--yes}'[Delete without asking for confirmation first]' \
1537
1581
  '--api-key[Postman API key, used with a Postman cloud id (defaults to your `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
1582
+ '--json[Print the result as machine-readable data (requires --yes)]' \
1538
1583
  '(-h --help)'{-h,--help}'[display help for command]' \
1539
1584
  '*:mockIdOrPath:_files -g "*.json"'
1540
1585
  }
@@ -1560,6 +1605,7 @@ _postman_monitor() {
1560
1605
  metrics) _postman_monitor_metrics ;;
1561
1606
  pause) _postman_monitor_pause ;;
1562
1607
  resume) _postman_monitor_resume ;;
1608
+ share) _postman_monitor_share ;;
1563
1609
  esac
1564
1610
  ;;
1565
1611
  esac
@@ -1568,17 +1614,18 @@ _postman_monitor() {
1568
1614
  _postman_monitor_commands() {
1569
1615
  local -a sub
1570
1616
  sub=(
1571
- 'run:Invoke a monitor run and display results.'
1617
+ 'run:Run a monitor now and report the result.'
1572
1618
  'create:Create a collection-based monitor.'
1573
1619
  'update:Update a monitor'\''s schedule, runner, notifications, request selection or run options.'
1574
1620
  'delete:Permanently delete a monitor. Prompts for confirmation unless --yes is passed.'
1575
- 'jobs:Inspect a monitor'\''s jobs and their per-region runs.'
1576
- 'runs:Inspect a monitor run'\''s attempts.'
1577
- 'list:List the monitors visible to you.'
1578
- 'get:Show a monitor'\''s configuration.'
1621
+ 'jobs:Inspect a monitor'\''s jobs (also called executions) and their per-runner runs.'
1622
+ 'runs:Inspect one run of a monitor job\: its requests, assertions and attempts.'
1623
+ 'list:List the monitors visible to you, one page at a time.'
1624
+ 'get:Show a monitor'\''s configuration and its last run.'
1579
1625
  'metrics:Show per-request latency and outcome history for a monitor.'
1580
1626
  'pause:Pause a monitor, so it stops firing on schedule.'
1581
1627
  'resume:Resume a paused monitor, so it fires on schedule again.'
1628
+ 'share:Grant a role on a monitor to one or more people.'
1582
1629
  )
1583
1630
  _describe -t commands 'monitor command' sub
1584
1631
  }
@@ -1586,28 +1633,28 @@ _postman_monitor_commands() {
1586
1633
  _postman_monitor_run() {
1587
1634
  _arguments \
1588
1635
  '--api-key[Postman API key (defaults to POSTMAN_API_KEY, then the `postman login` session, then a guest session)]:key:_files -g "*.(pem|crt|key)"' \
1589
- '(-x --suppress-exit-code)'{-x,--suppress-exit-code}'[Specify whether or not to override the default exit code for the current run]' \
1590
- '(-t --timeout)'{-t,--timeout}'[Maximum wait time for run completion in milliseconds (default\: 15 minutes) (default\: 900000)]:ms' \
1591
- '--async[Submit the run and return immediately with its job id and Postman URL, without waiting for completion]' \
1592
- '--json[Output the run'\''s verdict as JSON instead of a table, printing nothing else]' \
1636
+ '(-x --suppress-exit-code)'{-x,--suppress-exit-code}'[Always exit 0, whatever the run'\''s result or the failure]' \
1637
+ '(-t --timeout)'{-t,--timeout}'[How long to wait for the run to finish, in milliseconds (default\: 900000)]:ms' \
1638
+ '--async[Submit the run and print its job id and Postman URL without waiting for it to finish]' \
1639
+ '--json[Print { state, monitorId, jobId, url, stats } as JSON, and nothing else]' \
1593
1640
  '(-h --help)'{-h,--help}'[display help for command]' \
1594
1641
  '*:monitorId:'
1595
1642
  }
1596
1643
 
1597
1644
  _postman_monitor_create() {
1598
1645
  _arguments \
1599
- '(-c --collection)'{-c,--collection}'[Collection to monitor -- accepts the id shown in the Postman app, prefixed or bare]:id' \
1646
+ '(-c --collection)'{-c,--collection}'[Collection to monitor\: its id or uid, from the Postman app or `postman collection list`]:id' \
1600
1647
  '--name[Monitor name (defaults to the linked collection'\''s own name)]:name' \
1601
- '(-e --environment)'{-e,--environment}'[Environment to run the monitored collection with]:id' \
1602
- '(-w --workspace)'{-w,--workspace}'[Workspace to create the monitor in (defaults to the workspace named in the local .postman/resources.yaml manifest; required if neither is available)]:id' \
1603
- '--schedule[Cron expression for the monitor'\''s schedule]:cron' \
1648
+ '(-e --environment)'{-e,--environment}'[Environment to run the collection with\: its uid, from the Postman app or `postman environment list`]:id' \
1649
+ '(-w --workspace)'{-w,--workspace}'[Workspace to create the monitor in, from `postman workspace list` (defaults to the workspace named in the local .postman/resources.yaml manifest; required if neither is available)]:id' \
1650
+ '--schedule[Cron expression for the monitor'\''s schedule, five fields\: minute hour day-of-month month day-of-week, for example "0 9 * * MON". Leave month as * unless the monitor should run only in certain months; then write the month as a name (jan-dec)]:cron' \
1604
1651
  '--timezone[Time zone for --schedule, for example America/New_York (defaults to the host machine'\''s own zone)]:tz' \
1605
1652
  '--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' \
1606
1653
  '(-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' \
1607
1654
  '--notify-email[Email to notify on a run failure or error (repeatable) (default\: \[\])]:email' \
1608
1655
  '--notification-limit[Consecutive failure notifications to send before muting them]:n' \
1609
- '--retry[Times to retry a failed run]:n' \
1610
- '--timeout[Request timeout in milliseconds]:ms' \
1656
+ '--retry[Times to retry a failed run\: --retry 2 allows up to 3 attempts]:n' \
1657
+ '--timeout[Per-request timeout the monitor applies when it runs, in milliseconds (this command does not wait for a run; `postman monitor run --timeout` sets how long that waits)]:ms' \
1611
1658
  '--delay[Delay between requests in milliseconds]:ms' \
1612
1659
  '--strict-ssl[Fail the run when the target'\''s TLS certificate cannot be verified]' \
1613
1660
  '--insecure[Skip TLS certificate verification for the monitored target]' \
@@ -1619,25 +1666,25 @@ _postman_monitor_create() {
1619
1666
  '--iteration-strategy[How iteration data is consumed, for example round_robin, repeat_last or stop_at_end (requires --iteration-count, --dataset-id and --dataset-view-id)]:strategy' \
1620
1667
  '--no-run-now[Do not trigger an immediate run after creating the monitor]' \
1621
1668
  '--api-key[Postman API key (defaults to POSTMAN_API_KEY, then the `postman login` session, then a guest session)]:key:_files -g "*.(pem|crt|key)"' \
1622
- '--json[Output as JSON instead of a table]' \
1669
+ '--json[Print the outcome, the created monitor'\''s id, uid, name and active state, and the job of its first run, as JSON]' \
1623
1670
  '(-h --help)'{-h,--help}'[display help for command]'
1624
1671
  }
1625
1672
 
1626
1673
  _postman_monitor_update() {
1627
1674
  _arguments \
1628
1675
  '--name[New monitor name]:name' \
1629
- '--schedule[New cron expression for the monitor'\''s schedule]:cron' \
1676
+ '--schedule[New cron expression for the monitor'\''s schedule, five fields\: minute hour day-of-month month day-of-week, for example "0 9 * * MON". Leave month as * unless the monitor should run only in certain months; then write the month as a name (jan-dec)]:cron' \
1630
1677
  '--timezone[Time zone for --schedule, for example America/New_York (defaults to the host machine'\''s own zone)]:tz' \
1631
1678
  '--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' \
1632
1679
  '(-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' \
1633
1680
  '--clear-items[Remove the saved selection so the monitor runs every request in its collection]' \
1634
1681
  '--notify-email[Email to notify on a run failure or error (repeatable; replaces the current list) (default\: \[\])]:email' \
1635
1682
  '--clear-notifications[Remove every notification recipient]' \
1636
- '(-e --environment)'{-e,--environment}'[Environment to run the monitored collection with (replaces the current one)]:id' \
1683
+ '(-e --environment)'{-e,--environment}'[Environment to run the collection with, replacing the current one\: its uid, from `postman environment list`]:id' \
1637
1684
  '--clear-environment[Run the monitored collection with no environment]' \
1638
1685
  '--notification-limit[Consecutive failure notifications to send before muting them]:n' \
1639
- '--retry[Times to retry a failed run]:n' \
1640
- '--timeout[Request timeout in milliseconds]:ms' \
1686
+ '--retry[Times to retry a failed run\: --retry 2 allows up to 3 attempts]:n' \
1687
+ '--timeout[Per-request timeout the monitor applies when it runs, in milliseconds (this command does not wait for a run; `postman monitor run --timeout` sets how long that waits)]:ms' \
1641
1688
  '--delay[Delay between requests in milliseconds]:ms' \
1642
1689
  '--strict-ssl[Fail the run when the target'\''s TLS certificate cannot be verified]' \
1643
1690
  '--insecure[Skip TLS certificate verification for the monitored target]' \
@@ -1648,16 +1695,16 @@ _postman_monitor_update() {
1648
1695
  '--iteration-count[Number of iterations to run]:n' \
1649
1696
  '--iteration-strategy[How iteration data is consumed, for example round_robin, repeat_last or stop_at_end (requires --iteration-count, --dataset-id and --dataset-view-id)]:strategy' \
1650
1697
  '--api-key[Postman API key (defaults to POSTMAN_API_KEY, then the `postman login` session, then a guest session)]:key:_files -g "*.(pem|crt|key)"' \
1651
- '--json[Output as JSON instead of a table]' \
1698
+ '--json[Print the outcome and the monitor'\''s id, uid, name and active state as JSON]' \
1652
1699
  '(-h --help)'{-h,--help}'[display help for command]' \
1653
1700
  '*:monitorId:'
1654
1701
  }
1655
1702
 
1656
1703
  _postman_monitor_delete() {
1657
1704
  _arguments \
1658
- '(-y --yes)'{-y,--yes}'[Skip the confirmation prompt]' \
1705
+ '(-y --yes)'{-y,--yes}'[Skip the confirmation prompt; required when there is no interactive terminal or with --silent]' \
1659
1706
  '--api-key[Postman API key (defaults to POSTMAN_API_KEY, then the `postman login` session, then a guest session)]:key:_files -g "*.(pem|crt|key)"' \
1660
- '--json[Output the outcome, including any failure, as JSON instead of a plain message]' \
1707
+ '--json[Print the outcome (deleted or aborted) and the monitor id as JSON]' \
1661
1708
  '(-h --help)'{-h,--help}'[display help for command]' \
1662
1709
  '*:monitorId:'
1663
1710
  }
@@ -1682,29 +1729,29 @@ _postman_monitor_jobs() {
1682
1729
  _postman_monitor_jobs_commands() {
1683
1730
  local -a sub
1684
1731
  sub=(
1685
- 'list:List a monitor'\''s recent jobs.'
1686
- 'get:Report one job'\''s terminal state and its per-region run outcomes.'
1732
+ 'list:List a monitor'\''s recent jobs, newest first. A job (also called an execution) is one firing of the monitor, with one run per runner.'
1733
+ 'get:Show one job (also called an execution) and the state, runner and duration of each of its runs. A run'\''s duration covers every attempt, including retries.'
1687
1734
  )
1688
1735
  _describe -t commands 'jobs command' sub
1689
1736
  }
1690
1737
 
1691
1738
  _postman_monitor_jobs_list() {
1692
1739
  _arguments \
1693
- '--api-key[Postman API key (defaults to POSTMAN_API_KEY, then the `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
1694
- '--result[Filter by outcome, for example success, failure, error or abort]:value' \
1695
- '--trigger[Filter by trigger, for example api, schedule, webhook or postman-cli]:value' \
1740
+ '--api-key[Postman API key (defaults to POSTMAN_API_KEY, then the `postman login` session, then a guest session)]:key:_files -g "*.(pem|crt|key)"' \
1741
+ '--result[Only jobs that finished in this state\: success, failure, error or abort; any other value is rejected before any request]:state' \
1742
+ '--trigger[Only jobs started by this trigger\: api, schedule, webhook or postman-cli; any other value is rejected before any request]:value' \
1696
1743
  '--since[Only jobs that finished at or after this ISO 8601 date-time]:dateTime' \
1697
- '--limit[Maximum number of jobs to return]:n' \
1698
- '--cursor[Opaque pagination cursor]:token' \
1699
- '--json[Output as JSON instead of a table]' \
1744
+ '--limit[Jobs per page, 1-25 (default\: 25)]:n' \
1745
+ '--cursor[Page number to read, from the "Next page" line or `nextCursor` under --json of a previous listing; pass the same --limit and filters]:page' \
1746
+ '--json[Print { monitorId, jobs, nextCursor } as JSON, each job with its runs]' \
1700
1747
  '(-h --help)'{-h,--help}'[display help for command]' \
1701
1748
  '*:monitorId:'
1702
1749
  }
1703
1750
 
1704
1751
  _postman_monitor_jobs_get() {
1705
1752
  _arguments \
1706
- '--api-key[Postman API key (defaults to POSTMAN_API_KEY, then the `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
1707
- '--json[Output as JSON instead of a table]' \
1753
+ '--api-key[Postman API key (defaults to POSTMAN_API_KEY, then the `postman login` session, then a guest session)]:key:_files -g "*.(pem|crt|key)"' \
1754
+ '--json[Print the job as JSON, with each run'\''s state, runner, counts, duration and attempts]' \
1708
1755
  '(-h --help)'{-h,--help}'[display help for command]' \
1709
1756
  '*:jobId:'
1710
1757
  }
@@ -1728,17 +1775,17 @@ _postman_monitor_runs() {
1728
1775
  _postman_monitor_runs_commands() {
1729
1776
  local -a sub
1730
1777
  sub=(
1731
- 'get:Report which test assertions ran during one attempt of a run, which failed, and why.'
1778
+ 'get:Show one attempt of a run\: each request with its response or error, and its assertions, console lines and exceptions. A retried run has several attempts, numbered from 0; the latest is shown unless --attempt names another. Console, assertion and exception messages are the collection'\''s own output, printed as the run recorded them.'
1732
1779
  )
1733
1780
  _describe -t commands 'runs command' sub
1734
1781
  }
1735
1782
 
1736
1783
  _postman_monitor_runs_get() {
1737
1784
  _arguments \
1738
- '--api-key[Postman API key (defaults to POSTMAN_API_KEY, then the `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
1739
- '--attempt[Which attempt of the run to show, where 0 is the first (default\: the most recent)]:n' \
1740
- '--failed-only[Show only failed assertions]' \
1741
- '--json[Output as JSON instead of a table]' \
1785
+ '--api-key[Postman API key (defaults to POSTMAN_API_KEY, then the `postman login` session, then a guest session)]:key:_files -g "*.(pem|crt|key)"' \
1786
+ '--attempt[Which attempt to show, from 0 for the first (default\: the latest)]:n' \
1787
+ '--failed-only[Show only requests with a failed assertion, an exception or a network error]' \
1788
+ '--json[Print the run as JSON\: its state, attempt, assertion counts and every request with its entries]' \
1742
1789
  '(-h --help)'{-h,--help}'[display help for command]' \
1743
1790
  '*:runId:'
1744
1791
  }
@@ -1746,27 +1793,26 @@ _postman_monitor_runs_get() {
1746
1793
  _postman_monitor_list() {
1747
1794
  _arguments \
1748
1795
  '--api-key[Postman API key (defaults to POSTMAN_API_KEY, then the `postman login` session, then a guest session)]:key:_files -g "*.(pem|crt|key)"' \
1749
- '(-w --workspace)'{-w,--workspace}'[Filter to monitors in this workspace]:id' \
1750
- '(-c --collection)'{-c,--collection}'[Filter to monitors on this collection]:id' \
1751
- '(-e --environment)'{-e,--environment}'[Filter to monitors on this environment]:id' \
1752
- '--runner[Filter to a self-hosted runner id, not a Postman region. Cannot be combined with --workspace, --collection, --environment, --owner, --team or --active]:id' \
1753
- '--owner[Filter to monitors created by this user id (shown in the Owner column)]:id' \
1754
- '--team[Filter to monitors owned by your own team]' \
1755
- '--active[Filter by active state]:true|false' \
1756
- '--limit[Maximum number of monitors to return (Postman caps the page size and rejects a larger value)]:n' \
1757
- '--cursor[Pagination cursor from a previous page'\''s response]:token' \
1758
- '--columns[Comma-separated columns to show. Defaults to Name, Status, ID, Schedule, Owner, Collection. Also available\: State, Notifications, Environment, Runners]:names' \
1759
- '--no-headers[Omit the header row]' \
1760
- '(-f --filter)'{-f,--filter}'[Show only monitors whose name contains this text (applies to the returned page, case-insensitive)]:text' \
1796
+ '(-w --workspace)'{-w,--workspace}'[Only monitors in this workspace (ids from `postman workspace list`)]:id' \
1797
+ '(-c --collection)'{-c,--collection}'[Only monitors on this collection\: its id or uid]:id' \
1798
+ '(-e --environment)'{-e,--environment}'[Only monitors on this environment\: its uid]:id' \
1799
+ '--runner[Only monitors on this self-hosted runner id, from `postman runner list` (not a Postman region). Cannot be combined with --workspace, --collection, --environment, --owner or --active]:id' \
1800
+ '--owner[Only monitors created by this user id\: the `owner` field under --json]:id' \
1801
+ '--active[Only active (true) or paused (false) monitors]:true|false' \
1802
+ '--limit[Monitors per page, 1-25]:n' \
1803
+ '--cursor[Page to read\: the cursor from the "Next page" line of a previous listing, or `nextCursor` under --json; pass the same filters and --limit]:token' \
1804
+ '--columns[Comma-separated columns to show. Defaults to Name, ID, State, Health, Schedule, Owner, Collection, dropping Collection, Owner, Schedule in that order when the table is wider than the terminal. Also available\: Environment, Runners, Notifications]:names' \
1805
+ '--no-headers[Omit the header row and its rule]' \
1806
+ '(-f --filter)'{-f,--filter}'[Only monitors whose name contains this text, case-insensitive (applies to the returned page)]:text' \
1761
1807
  '--sort[Sort the returned page by "name" or "active"]:field' \
1762
- '--json[Output as JSON instead of a table]' \
1808
+ '--json[Print { monitors, nextCursor } as JSON, every monitor field except lastRun present (null when unset); monitor get carries lastRun]' \
1763
1809
  '(-h --help)'{-h,--help}'[display help for command]'
1764
1810
  }
1765
1811
 
1766
1812
  _postman_monitor_get() {
1767
1813
  _arguments \
1768
1814
  '--api-key[Postman API key (defaults to POSTMAN_API_KEY, then the `postman login` session, then a guest session)]:key:_files -g "*.(pem|crt|key)"' \
1769
- '--json[Output as JSON instead of a table]' \
1815
+ '--json[Print the monitor as JSON, every field present (null when unset)]' \
1770
1816
  '(-h --help)'{-h,--help}'[display help for command]' \
1771
1817
  '*:monitorId:'
1772
1818
  }
@@ -1777,8 +1823,8 @@ _postman_monitor_metrics() {
1777
1823
  '--since[Only executions at or after this ISO 8601 date-time (defaults to 7 days ago)]:dateTime' \
1778
1824
  '--until[Only executions at or before this ISO 8601 date-time (defaults to now)]:dateTime' \
1779
1825
  '(-f --filter)'{-f,--filter}'[Show only requests whose name contains this text (case-insensitive)]:text' \
1780
- '--limit[Maximum number of rows to show\: executions, newest first, under --json, or requests, worst-behaving first, in the table. Applied to the results after they are fetched, so it does not make the command faster]:n' \
1781
- '--json[Output as JSON instead of a table]' \
1826
+ '--limit[Rows to show, any positive whole number\: the worst-behaving requests in the table, or the newest executions under --json. Applied after the results are fetched]:n' \
1827
+ '--json[Print { monitorId, window, metricsAvailable, executions } as JSON, one entry per request per job per runner]' \
1782
1828
  '(-h --help)'{-h,--help}'[display help for command]' \
1783
1829
  '*:monitorId:'
1784
1830
  }
@@ -1786,7 +1832,7 @@ _postman_monitor_metrics() {
1786
1832
  _postman_monitor_pause() {
1787
1833
  _arguments \
1788
1834
  '--api-key[Postman API key (defaults to POSTMAN_API_KEY, then the `postman login` session, then a guest session)]:key:_files -g "*.(pem|crt|key)"' \
1789
- '--json[Output as JSON instead of a table]' \
1835
+ '--json[Print the outcome and the monitor'\''s id, uid, name and active state as JSON]' \
1790
1836
  '(-h --help)'{-h,--help}'[display help for command]' \
1791
1837
  '*:monitorId:'
1792
1838
  }
@@ -1794,7 +1840,18 @@ _postman_monitor_pause() {
1794
1840
  _postman_monitor_resume() {
1795
1841
  _arguments \
1796
1842
  '--api-key[Postman API key (defaults to POSTMAN_API_KEY, then the `postman login` session, then a guest session)]:key:_files -g "*.(pem|crt|key)"' \
1797
- '--json[Output as JSON instead of a table]' \
1843
+ '--json[Print the outcome and the monitor'\''s id, uid, name and active state as JSON]' \
1844
+ '(-h --help)'{-h,--help}'[display help for command]' \
1845
+ '*:monitorId:'
1846
+ }
1847
+
1848
+ _postman_monitor_share() {
1849
+ _arguments \
1850
+ '--user[Who to share with. Repeatable, and each value may be a comma-separated list. A value containing @ is treated as an email address, anything else as a Postman user id.]:email|id' \
1851
+ '--role[The role to grant. (default\: "viewer")]:viewer|editor' \
1852
+ '--json[Print the outcome as machine-readable JSON.]' \
1853
+ '--timeout[Milliseconds to wait for Postman. Defaults to 30000.]:ms' \
1854
+ '--api-key[Postman API key (defaults to your `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
1798
1855
  '(-h --help)'{-h,--help}'[display help for command]' \
1799
1856
  '*:monitorId:'
1800
1857
  }
@@ -1891,7 +1948,7 @@ _postman_runner_start() {
1891
1948
  _arguments \
1892
1949
  '--id[The ID of the runner to execute]:id' \
1893
1950
  '--key[The secret key for the runner]:key:_files -g "*.(pem|crt|key)"' \
1894
- '--region[Region this runner reports to -- use "eu" for the EU region]:region' \
1951
+ '--region[Data residency of the Postman account the runner belongs to\: "us" (default) or "eu". This is not a monitor runner region]:region' \
1895
1952
  '--proxy[External proxy URL, for example http\://proxy.com or http\://proxy.com\:8080]:url' \
1896
1953
  '--egress-proxy[Enable built-in egress proxy]' \
1897
1954
  '--egress-proxy-authz-url[Custom egress proxy authorization service base URL]:url' \
@@ -1907,15 +1964,15 @@ _postman_runner_start() {
1907
1964
  _postman_runner_list() {
1908
1965
  _arguments \
1909
1966
  '--api-key[Postman API key (defaults to POSTMAN_API_KEY, then the `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
1910
- '(-w --workspace)'{-w,--workspace}'[Filter to runners in this workspace]:id' \
1911
- '--json[Output the runner list as JSON instead of a table]' \
1967
+ '(-w --workspace)'{-w,--workspace}'[Only runners this workspace can use\: runners scoped to it and runners shared with the whole team]:id' \
1968
+ '--json[Print { runners } as JSON, every field present (null when unset)]' \
1912
1969
  '(-h --help)'{-h,--help}'[display help for command]'
1913
1970
  }
1914
1971
 
1915
1972
  _postman_runner_regions() {
1916
1973
  _arguments \
1917
1974
  '--api-key[Postman API key (defaults to POSTMAN_API_KEY, then the `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
1918
- '--json[Output the region list as JSON instead of a table]' \
1975
+ '--json[Print { regions } as JSON, every field present (null when unset)]' \
1919
1976
  '(-h --help)'{-h,--help}'[display help for command]'
1920
1977
  }
1921
1978
 
@@ -2244,7 +2301,7 @@ _postman_spec_generate() {
2244
2301
  _postman_spec_generate_commands() {
2245
2302
  local -a sub
2246
2303
  sub=(
2247
- 'collection:Generate a Postman collection from a specification.'
2304
+ 'collection:Generate a Postman collection from an OpenAPI or AsyncAPI (Kafka) specification. Only Kafka AsyncAPI 2.x and 3.0 specs are supported\: the spec must declare a kafka or kafka-secure server.'
2248
2305
  )
2249
2306
  _describe -t commands 'generate command' sub
2250
2307
  }
@@ -2252,7 +2309,7 @@ _postman_spec_generate_commands() {
2252
2309
  _postman_spec_generate_collection() {
2253
2310
  _arguments \
2254
2311
  '(-n --name)'{-n,--name}'[Collection name]:name' \
2255
- '--folder-strategy[Folder strategy\: Paths or Tags (default\: Paths) (default\: "Paths")]:strategy' \
2312
+ '--folder-strategy[Folder strategy\: Paths or Tags (default\: Paths). OpenAPI only (default\: "Paths")]:strategy' \
2256
2313
  '(-w --workspace)'{-w,--workspace}'[Workspace ID (cloud mode)]:id' \
2257
2314
  '--api-key[Postman API key]:key:_files -g "*.(pem|crt|key)"' \
2258
2315
  '--force[Overwrite the collection if one with this name already exists (local mode)]' \
@@ -2288,8 +2345,8 @@ _postman_spec_sync_collection() {
2288
2345
  _arguments \
2289
2346
  '--collection-id[Collection ID to sync (required for cloud mode)]:id' \
2290
2347
  '--api-key[Postman API key]:key:_files -g "*.(pem|crt|key)"' \
2291
- '--force[Overwrite hand-written scripts, headers and descriptions that the spec would otherwise drop]' \
2292
- '--dry-run[Report what sync would change and remove without writing anything]' \
2348
+ '--force[Overwrite hand-written scripts, headers and descriptions that the spec would otherwise drop (OpenAPI), or collection files that could not be read (AsyncAPI)]' \
2349
+ '--dry-run[Report what sync would change and remove without writing anything (OpenAPI only)]' \
2293
2350
  '(-h --help)'{-h,--help}'[display help for command]' \
2294
2351
  '*:spec:'
2295
2352
  }
@@ -2320,6 +2377,7 @@ _postman_workspace() {
2320
2377
  activity) _postman_workspace_activity ;;
2321
2378
  create) _postman_workspace_create ;;
2322
2379
  delete) _postman_workspace_delete ;;
2380
+ share) _postman_workspace_share ;;
2323
2381
  pull) _postman_workspace_pull ;;
2324
2382
  connect-git) _postman_workspace_connect_git ;;
2325
2383
  disconnect-git) _postman_workspace_disconnect_git ;;
@@ -2340,7 +2398,8 @@ _postman_workspace_commands() {
2340
2398
  'activity:Read a workspace'\''s activity feed.'
2341
2399
  'create:Create a Postman workspace and bind it to this git repository.'
2342
2400
  'delete:Permanently delete a workspace and everything in it. Prompts for confirmation unless --yes is passed.'
2343
- 'pull:Pull workspace entities from a Postman workspace into the local git-native folder.'
2401
+ 'share:Grant a role on a workspace to one or more people.'
2402
+ 'pull:Pull workspace entities from a Postman workspace into the local folder.'
2344
2403
  'connect-git:Connect a Postman workspace to a local git repository.'
2345
2404
  'disconnect-git:Disconnect a Postman workspace from its local git repository.'
2346
2405
  'diff:Preview local-vs-cloud drift before pushing. Read-only\: nothing is created, updated or deleted.'
@@ -2434,6 +2493,17 @@ _postman_workspace_delete() {
2434
2493
  '*:workspaceId:'
2435
2494
  }
2436
2495
 
2496
+ _postman_workspace_share() {
2497
+ _arguments \
2498
+ '--user[Who to share with. Repeatable, and each value may be a comma-separated list. A value containing @ is treated as an email address, anything else as a Postman user id.]:email|id' \
2499
+ '--role[The role to grant. (default\: "viewer")]:viewer|editor' \
2500
+ '--json[Print the outcome as machine-readable JSON.]' \
2501
+ '--timeout[Milliseconds to wait for Postman. Defaults to 30000.]:ms' \
2502
+ '--api-key[Postman API key (defaults to your `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
2503
+ '(-h --help)'{-h,--help}'[display help for command]' \
2504
+ '*:workspaceId:'
2505
+ }
2506
+
2437
2507
  _postman_workspace_pull() {
2438
2508
  _arguments \
2439
2509
  '(-y --yes)'{-y,--yes}'[Skip all confirmation prompts]' \
@@ -2507,7 +2577,6 @@ _postman_context_graph_ask() {
2507
2577
  '--api-key[Postman API key (falls back to POSTMAN_API_KEY, then a `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
2508
2578
  '--json[Output the ask record as JSON]' \
2509
2579
  '--no-include-answer[Do not ask the service to include the answer inline]' \
2510
- '--max-steps[Cap the reasoning steps the service may take (its default applies when omitted)]:count' \
2511
2580
  '--interval[With --wait, seconds between polls (default\: 2)]:seconds' \
2512
2581
  '--timeout[With --wait, seconds to wait before giving up (default\: 300)]:seconds' \
2513
2582
  '(-h --help)'{-h,--help}'[display help for command]' \
@@ -2818,7 +2887,6 @@ _postman_init() {
2818
2887
  _arguments \
2819
2888
  '--json[Emit machine-readable output for agents]' \
2820
2889
  '--dry-run[Report what would happen without writing anything]' \
2821
- '--no-fetch[Use the skills bundled with this CLI instead of fetching the latest]' \
2822
2890
  '--spec[Which spec is authoritative, when more than one could be]:path:_files -g "*.(yaml|yml|json)"' \
2823
2891
  '--visibility[Create and bind a workspace non-interactively (personal, team)]:status' \
2824
2892
  '(-y --yes)'{-y,--yes}'[Accept the default for every question instead of asking or stopping]' \
@@ -3264,6 +3332,7 @@ _postman_secret_create() {
3264
3332
  '--terminal[Enter one secret value through the terminal instead of the default browser form]' \
3265
3333
  '--value-stdin[Read the secret value from stdin instead of prompting; implies --terminal]' \
3266
3334
  '--timeout[Seconds to wait for the browser form (default 300)]:seconds' \
3335
+ '--json[Print the created secrets as machine-readable JSON (never the values)]' \
3267
3336
  '(-h --help)'{-h,--help}'[display help for command]' \
3268
3337
  '*:keys...:_files -g "*.json"'
3269
3338
  }
@@ -3303,7 +3372,7 @@ _postman_simulation() {
3303
3372
  _postman_simulation_commands() {
3304
3373
  local -a sub
3305
3374
  sub=(
3306
- 'create:Create a simulation that serves several mocks behind one address'
3375
+ 'create:Create a simulation that serves several mocks behind one address. Add --deploy to also make it a live mock server.'
3307
3376
  'list:List the simulations in your repository or Postman cloud workspace'
3308
3377
  '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.'
3309
3378
  '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).'
@@ -3323,7 +3392,11 @@ _postman_simulation_create() {
3323
3392
  '--routing[How callers reach each mock\: header or path (default path)]:header|path' \
3324
3393
  '(-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"' \
3325
3394
  '--force[Overwrite the simulation file if it already exists]' \
3326
- '(-w --workspace)'{-w,--workspace}'[Postman cloud workspace to create the simulation in, by id (defaults to the workspace already linked to this project)]:id' \
3395
+ '(-w --workspace)'{-w,--workspace}'[Postman cloud workspace to create the simulation in (or deploy it to, with --deploy), by id (defaults to the workspace already linked to this project)]:id' \
3396
+ '--deploy[After creating, upload the simulation (and its mocks) to Postman cloud and deploy it to a live mock server (private by default).]' \
3397
+ '--public[With --deploy, let anyone with the link reach the server (default\: callers need an API key)]' \
3398
+ '(-s --slug)'{-s,--slug}'[With --deploy, the short label used in the server'\''s web address]:slug' \
3399
+ '--json[Print the result (with --deploy, the live server details) as machine-readable data instead of a summary]' \
3327
3400
  '--api-key[Postman API key (defaults to your `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
3328
3401
  '(-h --help)'{-h,--help}'[display help for command]'
3329
3402
  }
@@ -3340,7 +3413,7 @@ _postman_simulation_list() {
3340
3413
  _postman_simulation_get() {
3341
3414
  _arguments \
3342
3415
  '--api-key[Postman API key (defaults to your `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
3343
- '--json[Print the details as machine-readable data instead of a table]' \
3416
+ '--json[Print the details as machine-readable data instead of a summary]' \
3344
3417
  '(-h --help)'{-h,--help}'[display help for command]' \
3345
3418
  '*:simIdOrPath:'
3346
3419
  }
@@ -3357,7 +3430,7 @@ _postman_simulation_run() {
3357
3430
  '--no-history[Do not record this run in the simulation'\''s start history]' \
3358
3431
  '--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' \
3359
3432
  '--verbose[Show request and response headers and bodies for each request. By default each request prints one line, plus any applied scenario or error.]' \
3360
- '--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.]' \
3433
+ '--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. Each mock is reached on the hostnames its `origin\:` declares; a request to any other host reaches the real host unchanged.]' \
3361
3434
  '--proxy-port[Port for the proxy server. Distinct from --port, which is the one-port run'\''s own port. (default\: 7001)]:n' \
3362
3435
  '--scenario[Scenario each mock serves, sent as both pm-mock-scenario and x-mock-scenario. (default\: "default")]:name' \
3363
3436
  '--session[Session id to select via the x-mock-session header (default\: a generated id).]:id' \
@@ -3372,6 +3445,7 @@ _postman_simulation_push() {
3372
3445
  _arguments \
3373
3446
  '(-w --workspace)'{-w,--workspace}'[Postman cloud workspace to upload to, by id (defaults to the workspace already linked to this project)]:id' \
3374
3447
  '--api-key[Postman API key (defaults to your `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
3448
+ '--json[Print the result as machine-readable data]' \
3375
3449
  '(-h --help)'{-h,--help}'[display help for command]' \
3376
3450
  '*:simPath:'
3377
3451
  }
@@ -3381,9 +3455,11 @@ _postman_simulation_deploy() {
3381
3455
  '(-w --workspace)'{-w,--workspace}'[Postman cloud workspace that will own the server, by id (defaults to the workspace already linked to this project)]:id' \
3382
3456
  '(-n --name)'{-n,--name}'[Name for the mock server (you are asked for one if you skip this)]:name' \
3383
3457
  '(-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' \
3384
- '--private[Require a Postman API key to reach the server. Public by default.]' \
3385
- '(-y --yes)'{-y,--yes}'[Use the defaults and skip all questions (public)]' \
3458
+ '--public[Let anyone with the link reach the server. Private by default (callers must send a Postman API key).]' \
3459
+ '--private[Require a Postman API key to reach the server (the default; kept for compatibility).]' \
3460
+ '(-y --yes)'{-y,--yes}'[Use the defaults and skip all questions (private)]' \
3386
3461
  '--api-key[Postman API key (defaults to your `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
3462
+ '--json[Print the live server details as machine-readable data instead of a summary (asks no questions)]' \
3387
3463
  '(-h --help)'{-h,--help}'[display help for command]' \
3388
3464
  '*:simId:'
3389
3465
  }
@@ -3419,6 +3495,7 @@ _postman_simulation_delete() {
3419
3495
  _arguments \
3420
3496
  '(-y --yes)'{-y,--yes}'[Delete without asking for confirmation first]' \
3421
3497
  '--api-key[Postman API key, used with a Postman cloud id (defaults to your `postman login` session)]:key:_files -g "*.(pem|crt|key)"' \
3498
+ '--json[Print the result as machine-readable data (requires --yes)]' \
3422
3499
  '(-h --help)'{-h,--help}'[display help for command]' \
3423
3500
  '*:simIdOrPath:'
3424
3501
  }