OpenKeel: the sovereign French Cloud solution of the inherent group, with a European reach Discover inherent

Reverse-spec · Clients

python-manilaclient — Cli commands

CLI commands — python-manilaclient — branch stable/2026.2

Branch stable/2026.2 @ d18a7e966 (6.3.0 + 2 maintenance commits) — repository https://opendev.org/openstack/python-manilaclient — analysed on 2026-11-01

python-manilaclient exposes no API of its own. It adds **154 openstack share … commands** to the openstack CLI, and a Python API that those commands call. Its contract with the outside world is the HTTP requests it sends to Manila: see interactions and the client contract.

[observed] below means seen with the real shell against the local stub, which is not Manila. It shows what the client sends and how it reacts, and says nothing about what a real service answers.

1. Shared mechanics

Loading

  • Entry points: openstack.cli.extension: share = manilaclient.osc.plugin (pyproject.toml:36-37), and one line per command in openstack.share.v2 (pyproject.toml:39).
  • Command group: OSC builds openstack.share.v2 from the major part of the version option (openstackclient:openstackclient/shell.py:102). The minor part does not change which commands load. All 154 are always loaded.
  • Client: make_client (manilaclient/osc/plugin.py:63) resolves the endpoint, runs discovery with a temporary client at 2.98, then builds the real client at the negotiated version. See 03 § 4.
  • Global options: --os-share-api-version, default OS_SHARE_API_VERSION or 2.98, and --os-endpoint-override (manilaclient/osc/plugin.py:124-148).

Legacy CLI and Python API

  • No legacy shell. manilaclient/shell.py and the manila command were removed by commit e448fc8 (2026-01-16), which is in this branch. The package has no console_scripts (pyproject.toml:33-39). doc/source/cli/decoder.rst:7 keeps the old-to-new mapping for reference.
  • Python API used by the commands: manilaclient.v2.client.Client (manilaclient/v2/client.py:55), with 32 manager attributes (manilaclient/v2/client.py:227-290). Every command goes through one or more managers. Their routes per version are in [_rewrite/manager-routes_stable-2026.2.json](_rewrite/manager-routes_stable-2026.2.json).
  • **manilaclient.client.Client** (manilaclient/client.py:45) is the versioned factory for library users. make_client uses it for the discovery client (manilaclient/osc/plugin.py:101).
  • **manilaclient/v1/** holds thin modules for old callers. API_VERSIONS only lists 2.0 to 2.98 (manilaclient/osc/plugin.py:35-37), so commands never reach them.
  • Library-only methods: 15 manager methods have no command calling them directly, for example share_servers.details, quota_classes.get and every update_all_metadata (generated by build_contract_stable-2026.2.py).

Microversion gates

There are two levels, and a user sees different messages from them.

LevelHow it looksExample messageSource
The commandif share_client.api_version < APIVersion("2.84"): 86 gate sites across the commands, on 43 microversionsSetting share mount point name is available only for API microversion >= 2.84manilaclient/osc/v2/share.py:276
The manager@api_versions.wraps("2.80"); no variant for the version raises UnsupportedVersionAPI version '2.72' is not supported on 'manilaclient.v2.share_backups.ShareBackupManager.list' method. [observed]manilaclient/api_versions.py:446-456

A command with no gate of its own, such as share backup list, therefore prints a Python method name. The lowest version at which each command succeeded on the stub is in § 3 and in [_rewrite/version-sweep_stable-2026.2.json](_rewrite/version-sweep_stable-2026.2.json).

Name or ID

Two helpers exist, and the commands mix them. See 03 § 5 for the requests.

HelperUsed byOrder
manilaclient.common.apiclient.utils.find_resourceshare, share type, share access, share migration, and othersinteger, UUID, find(human_id), find(name) (manilaclient/common/apiclient/utils.py:21)
osc_lib.utils.find_resourceshare backup, share group, share network, share snapshot, and othersget(value) catching every exception, integer, find(name), full list (osc-lib:osc_lib/utils/__init__.py:204)

Some commands take an ID only and do no lookup: share restore (despite its help text, see 02 § 4), share replica show, share access show, share lock set, share transfer accept, share snapshot instance set.

find matches on name. A user message has no name, so share message show <text> can only work with an ID [observed].

Output

  • Lister (31 commands) and ShowOne (48 commands) go through the cliff formatters. The other 75 are command.Command and print nothing on success.
  • links is usually removed. metadata is displayed as properties on shares, snapshots, replicas and subnets (manilaclient/osc/v2/share.py:825-834).
  • The table formatter gets flattened strings: format_properties, convert_dict_list_to_string (manilaclient/osc/utils.py:45, manilaclient/common/cliutils.py:279). Other formatters get the original structures, so the JSON output and the table output differ in type for those fields (manilaclient/osc/v2/share.py:828-832).
  • share snapshot list --count prints Total number of snapshots: N directly and refuses any formatter other than table (manilaclient/osc/v2/share_snapshots.py:576, manilaclient/osc/v2/share_snapshots.py:612).

Failure handling in commands with several targets

Delete and similar commands loop over their arguments, log Failed to … for each failure, and raise one summary at the end, such as 1 of 2 shares failed to delete. (manilaclient/osc/v2/share.py:449-455). share snapshot abandon is an exception: its lookup is outside the try, so a missing first snapshot stops the batch (manilaclient/osc/v2/share_snapshots.py:723).

2. Functional description by family

Line numbers point at the take_action of the class, or at a precise rule.

Shares (share create|delete|list|show|set|unset|resize|adopt|abandon|restore|revert)

  • create (manilaclient/osc/v2/share.py:226):
    • Purpose: create a share of a protocol and size.
    • Rules: the name None is refused (manilaclient/osc/v2/share.py:230). Without --share-type and --snapshot-id, it reads the default type with GET /types/default (manilaclient/osc/v2/share.py:242). From a snapshot, the size is the larger of --size and the snapshot size (manilaclient/osc/v2/share.py:272). --scheduler-hint same_host=a,b resolves each share to its ID (manilaclient/osc/v2/share.py:305-324). --mount-point-name needs 2.84, --encryption-key-ref 2.90, --scheduler-hint 2.65.
    • Flow: POST /shares [observed]. With --wait, polls until available. Then GET /shares/{id}, always. See scenario 2.
    • Outcome: usually creating in the display; the final status arrives later on the service.
  • list (manilaclient/osc/v2/share.py:633): GET /shares/detail. Each resource option is resolved first, so a filter can add lookups. --project implies all_tenants. The list is sorted on the client by --sort (manilaclient/osc/v2/share.py:777). Filters with their gates: --soft-deleted 2.69, --export-location 2.35, --encryption-key-ref 2.90, --availability-zone 2.97, --name~ and --description~ 2.36.
  • show (manilaclient/osc/v2/share.py:804): the share, then GET /shares/{id}/export_locations. Fails below 2.9, because that manager starts there [observed].
  • set (manilaclient/osc/v2/share.py:913): POST /shares/{id}/metadata, PUT /shares/{id}, reset_status, and **always reset_task_state** (defect).
  • unset (manilaclient/osc/v2/share.py:1004): PUT with null name or description; one DELETE /shares/{id}/metadata/{key} per key.
  • resize (manilaclient/osc/v2/share.py:1079): compares with the current size, then sends shrink or extend; --force needs 2.64. An equal size is an error raised locally.
  • adopt / abandon (manilaclient/osc/v2/share.py:1211, manilaclient/osc/v2/share.py:1300): POST /shares/manage and the unmanage action. --public crashes on the client (defect).
  • delete (manilaclient/osc/v2/share.py:406): DELETE /shares/{id}, force_delete with --force, soft_delete with --soft (2.69). --share-group is added as ?share_group_id=.
  • restore (manilaclient/osc/v2/share.py:1811): 2.69, action restore.
  • revert (manilaclient/osc/v2/share.py:1580): finds the snapshot, reads its share_id, finds the share, sends revert (2.27).
stateDiagram-v2
  [*] --> creating: share create (POST /shares)
  creating --> available: Manila service, seen by polling or show
  creating --> error: Manila service
  available --> extending: share resize, larger
  available --> shrinking: share resize, smaller
  extending --> available: Manila service
  shrinking --> available: Manila service
  available --> reverting: share revert
  reverting --> available: Manila service
  available --> deleting: share delete
  deleting --> [*]: Manila service, GET gives 404
  available --> recycle_bin: share delete --soft (is_soft_deleted flag)
  recycle_bin --> available: share restore
  error --> available: share set --status (admin)

The statuses come from Manila, and the client only waits on available, error, manage_error and backup_restoring_error (manilaclient/osc/v2/share.py:1269, manilaclient/osc/v2/share_backups.py:359). The diagram is [inferred] from those states and from reverse-spec-manila; the client code has no state machine.

Access rules (share access create|delete|list|show|set|unset)

  • create (manilaclient/osc/v2/share_access_rules.py:126): action allow_access. The manager validates the rule locally, by access type (manilaclient/v2/shares.py:902): ip must parse as an address or network, user follows a name pattern, cert is 1 to 64 characters, cephx has its own pattern. Accepted types widen with the version: cephx at 2.13, ipv6 handling at 2.38. Locks need 2.82, properties 2.45.
  • list (manilaclient/osc/v2/share_access_rules.py:318): GET /share-access-rules?share_id= from 2.45, otherwise the access_list action. Filters need 2.82.
  • set (manilaclient/osc/v2/share_access_rules.py:472): --property is a PUT /share-access-rules/{id}/metadata (2.45), --access-level a PUT /share-access-rules/{id} with update_access (2.88).

Snapshots (share snapshot …, 18 commands)

create, delete (force_delete with --force), set, unset, list, show, adopt and abandon (POST /snapshots/manage, action unmanage), access create|delete|list (allow_access, deny_access, GET …/access-list; mountable snapshots, 2.32), export location list|show, instance list|show|set, instance export location list|show (manilaclient/osc/v2/share_snapshots.py:81, manilaclient/osc/v2/share_snapshot_instances.py:42). create crashes below 2.73 (defect). Snapshot instances use /snapshot-instances.

Replicas and instances

  • **share replica …** (manilaclient/osc/v2/share_replicas.py:87): POST /share-replicas. --share-network needs 2.72, --scheduler-hint only_host= 2.67 and refuses any other key (manilaclient/osc/v2/share_replicas.py:102), --property 2.95. list --property sends a filter, then filters again on the client (manilaclient/osc/v2/share_replicas.py:281-289). promote accepts --quiesce-wait-time from 2.75. set covers reset_replica_state, reset_status and metadata.
  • **share instance …** (manilaclient/osc/v2/share_instances.py:49): admin views through /share_instances, with an underscore. delete is always a force_delete. set only offers --status.

Networks and security services

  • **share network create|delete|list|set|show|unset** (manilaclient/osc/v2/share_networks.py:341): Neutron names are resolved at create, not at set. show adds GET /security-services?share_network_id= (manilaclient/osc/v2/share_networks.py:259). set is the richest command: --status, and --new-security-service with --current-security-service choose between add, replace and their --check-only forms (2.63), whose result is **printed through LOG.error on purpose** (manilaclient/osc/v2/share_networks.py:641-645). Every use fails below 2.63 (defect).
  • **share network subnet create|delete|set|show|unset** (manilaclient/osc/v2/share_network_subnets.py:105): nested under /share-networks/{id}/subnets. --check-only and --restart-check (2.70) send an action on the network instead of a POST; properties need 2.78.
  • **share security service …** (manilaclient/osc/v2/security_services.py:110): --ou 2.44, --default-ad-site 2.76. For active_directory, --server and --default-ad-site are mutually exclusive, checked on the client. set without any option sends nothing and fails with One or more set operations failed: Must specify fields to be updated [observed, case security-service-set-noop].
  • **share server …** (manilaclient/osc/v2/share_servers.py:51): admin. The manager's get reads backend_details and copies it into flat details: fields (manilaclient/v2/share_servers.py:120-122). migration start|show|cancel|complete need 2.57. --check-only can start a real migration (defect).

Types, groups, pools and administration

  • **share type …** (manilaclient/osc/v2/share_types.py:162): the second positional is the driver_handles_share_servers boolean. Boolean extra specs are checked on the client (manilaclient/osc/utils.py:71). Display splits required_extra_specs from the others, and turns share_type_access:is_public into visibility. access create|delete|list use POST /types/{id}/action and GET /types/{id}/share_type_access; the list refuses a public type on the client.
  • **share group …, share group snapshot …, share group type …** (manilaclient/osc/v2/share_groups.py:91, manilaclient/osc/v2/share_group_snapshots.py:60, manilaclient/osc/v2/share_group_types.py:81): 2.31 and above, experimental below 2.55. These 22 commands also exist, unloaded, in python-openstackclient; see § 4.
  • **share qos type …** (manilaclient/osc/v2/qos_types.py:80): 2.94.
  • **share pool list, share availability zone list, share limits show, share service list|set|ensure shares** (manilaclient/osc/v2/share_pools.py:74, manilaclient/osc/v2/availability_zones.py:29, manilaclient/osc/v2/share_limits.py:45, manilaclient/osc/v2/services.py:150): read-mostly administration. share service set needs --enable or --disable to send anything; without them it exits 0 silently [observed, case service-set-noop]. ensure shares needs 2.86.
  • **share quota set|show|delete** (manilaclient/osc/v2/quotas.py:174): --class targets quota-class-sets and treats the positional as a class name. Each counter has a gate, from 2.39 to 2.90. All empty is refused on the client.

Backups, transfers, locks, messages, migration

  • **share backup …** (manilaclient/osc/v2/share_backups.py:68): 2.80, always experimental. restore --target-share needs 2.91.
  • **share transfer …** (manilaclient/osc/v2/share_transfers.py:64): 2.77. accept takes the transfer ID and the auth_key.
  • **share lock …** (manilaclient/osc/v2/resource_locks.py:88): 2.81. Resource types known to the client: share, access_rule (manilaclient/osc/v2/resource_locks.py:49).
  • **share message …** (manilaclient/osc/v2/messages.py:55): 2.37; --since and --before 2.52.
  • **share migration start|show|cancel|complete** (manilaclient/osc/v2/share.py:1698, manilaclient/osc/v2/share.py:1789): 2.22 (start 2.29). show uses the action below 2.98, and GET /shares/{id}/migration-progress from 2.98. --writable, --preserve-metadata, --preserve-snapshots and --nondisruptive are the strings True or False in the JSON body, not booleans [observed].
  • **share export location list|show|set|unset, share properties show** (manilaclient/osc/v2/share.py:1388, manilaclient/osc/v2/share.py:1547): properties need 2.87.

3. All commands

Generated by [_rewrite/build_contract_stable-2026.2.py](_rewrite/build_contract_stable-2026.2.py).

  • Gates in the command: microversions tested in take_action.
  • Lowest version exit 0: the lowest of 2.0 to 2.98 at which the command exits 0 on the stub, with its minimal arguments and a filled body. It reflects the path of those arguments only, and a filled body proves nothing about a real service.
  • Requests observed at 2.98: the first distinct requests, with the action name. {id} stands for a UUID or a name given to the command. The probe passes the name x for most arguments, which is why several commands start with listings.

manilaclient/osc/v2/availability_zones.py (1 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share availability zone listList all availability zonesmanilaclient/osc/v2/availability_zones.py:20list0 (0)2.0GET /availability-zones

manilaclient/osc/v2/messages.py (3 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share message deleteRemove one or more messagesmanilaclient/osc/v2/messages.py:40none1 (1)2.37GET /messages/{id}; DELETE /messages/{id}
share message listLists all messagesmanilaclient/osc/v2/messages.py:78list9 (0)2.522.37GET /messages
share message showShow details about a messagemanilaclient/osc/v2/messages.py:198single1 (1)2.37GET /messages/{id}

manilaclient/osc/v2/qos_types.py (6 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share qos type createCreate new qos typemanilaclient/osc/v2/qos_types.py:48single3 (1)2.94POST /qos-types
share qos type deleteDelete a qos typemanilaclient/osc/v2/qos_types.py:100none1 (1)2.94GET /qos-types; DELETE /qos-types/{id}
share qos type listList qos typesmanilaclient/osc/v2/qos_types.py:259list8 (0)2.94GET /qos-types
share qos type setSet qos type description or specsmanilaclient/osc/v2/qos_types.py:145none3 (1)2.94GET /qos-types; PUT /qos-types/{id}
share qos type showDisplay qos type detailsmanilaclient/osc/v2/qos_types.py:364single1 (1)2.94GET /qos-types
share qos type unsetUnset qos type specsmanilaclient/osc/v2/qos_types.py:206none3 (1)2.94GET /qos-types; PUT /qos-types/{id}

manilaclient/osc/v2/quotas.py (3 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share quota deleteDelete Quotamanilaclient/osc/v2/quotas.py:406none3 (1)2.392.0GET /projects/{id}; DELETE /quota-sets/{project_id}
share quota setSet Quota for a project, or project/user or project/share-type or a class.manilaclient/osc/v2/quotas.py:21none16 (1)2.39, 2.40, 2.53, 2.62, 2.902.0GET /projects/{id}; PUT /quota-sets/{project_id}
share quota showShow Quotamanilaclient/osc/v2/quotas.py:309single5 (1)2.392.0GET /projects/{id}; GET /quota-sets/{project_id}

manilaclient/osc/v2/resource_locks.py (6 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share lock createLock a resource action from occurring on a resourcemanilaclient/osc/v2/resource_locks.py:55single4 (2)2.81GET /shares/{id}; POST /resource-locks
share lock deleteRemove one or more resource locksmanilaclient/osc/v2/resource_locks.py:110none1 (1)2.81GET /resource-locks; DELETE /resource-locks/{id}
share lock listLists all resource locksmanilaclient/osc/v2/resource_locks.py:145list17 (0)2.81GET /resource-locks
share lock setUpdate resource lock propertiesmanilaclient/osc/v2/resource_locks.py:384none3 (1)2.81PUT /resource-locks/{id}
share lock showShow details about a resource lockmanilaclient/osc/v2/resource_locks.py:357single1 (1)2.81GET /resource-locks
share lock unsetRemove resource lock propertiesmanilaclient/osc/v2/resource_locks.py:423none2 (1)2.81PUT /resource-locks/{id}

manilaclient/osc/v2/security_services.py (6 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share security service createCreate security service used by project.manilaclient/osc/v2/security_services.py:26single10 (1)2.44, 2.762.0POST /security-services
share security service deleteDelete one or more security services.manilaclient/osc/v2/security_services.py:156none1 (1)2.0GET /security-services/{id}; DELETE /security-services/{id}
share security service listList security services.manilaclient/osc/v2/security_services.py:476list14 (0)2.44, 2.762.0GET /security-services
share security service setSet security service.manilaclient/osc/v2/security_services.py:226none10 (1)2.44, 2.762.0GET /security-services/{id}; PUT /security-services/{id}
share security service showShow security service.manilaclient/osc/v2/security_services.py:197single1 (1)2.0GET /security-services/{id}
share security service unsetUnset security service.manilaclient/osc/v2/security_services.py:352none10 (1)2.44, 2.762.0GET /security-services/{id}; PUT /security-services/{id}

manilaclient/osc/v2/services.py (3 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share service ensure sharesRun ensure shares in a back end (Admin only).manilaclient/osc/v2/services.py:193none1 (1)2.862.86POST /services/ensure-shares
share service listList share services (Admin only).manilaclient/osc/v2/services.py:103list6 (0)2.83, 2.932.0GET /services
share service setEnable/Disable share service (Admin only).manilaclient/osc/v2/services.py:20none5 (2)2.832.0PUT /services/enable

manilaclient/osc/v2/share.py (20 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share abandonAbandon a sharemanilaclient/osc/v2/share.py:1280none2 (1)2.0GET /shares/detail; POST /shares/{id}/action (unmanage)
share adoptAdopt a sharemanilaclient/osc/v2/share.py:1122single11 (3)2.8, 2.49, 2.922.0POST /shares/manage
share createCreate new sharemanilaclient/osc/v2/share.py:98single15 (2)2.65, 2.84, 2.902.0GET /types/default; POST /shares
share deleteDelete a sharemanilaclient/osc/v2/share.py:362none5 (1)2.692.0GET /shares/detail; DELETE /shares/{id}
share export location listList export location of a sharemanilaclient/osc/v2/share.py:1375list1 (1)2.9GET /shares/detail; GET /shares/{id}/export_locations
share export location setSet an export location property.manilaclient/osc/v2/share.py:1407none3 (2)2.872.87GET /shares/detail; POST /shares/{id}/export_locations/{id}/metadata
share export location showShow export location of a sharemanilaclient/osc/v2/share.py:1336single2 (2)2.9GET /shares/detail; GET /shares/{id}/export_locations/{id}
share export location unsetUnset a share export location propertymanilaclient/osc/v2/share.py:1468none3 (2)2.872.87GET /shares/detail; DELETE /shares/{id}/export_locations/{id}/metadata/{key}
share listList sharesmanilaclient/osc/v2/share.py:458list26 (0)2.35, 2.36, 2.69, 2.90, 2.972.0GET /shares/detail
share migration cancelCancels migration of a given share when copyingmanilaclient/osc/v2/share.py:1724none1 (1)2.22GET /shares/detail; POST /shares/{id}/action (migration_cancel)
share migration completeCompletes migration for a given sharemanilaclient/osc/v2/share.py:1748none1 (1)2.22GET /shares/detail; POST /shares/{id}/action (migration_complete)
share migration showGets migration progress of a given share when copyingmanilaclient/osc/v2/share.py:1768single1 (1)2.22GET /shares/detail; GET /shares/{id}/migration-progress
share migration startMigrates share to a new host.manilaclient/osc/v2/share.py:1603none9 (6)2.29GET /shares/detail; POST /shares/{id}/action (migration_start)
share properties showShow share propertiesmanilaclient/osc/v2/share.py:1535single1 (1)2.0GET /shares/detail; GET /shares/{id}/metadata
share resizeResize a sharemanilaclient/osc/v2/share.py:1045none4 (2)2.642.0GET /shares/detail; POST /shares/{id}/action (extend)
share restoreRestores this share or more shares from the recycle binmanilaclient/osc/v2/share.py:1796none1 (1)2.692.69POST /shares/{id}/action (restore)
share revertRevert a share to the specified snapshot.manilaclient/osc/v2/share.py:1557none2 (1)2.27GET /snapshots/detail; GET /shares/{id}; POST /shares/{id}/action (revert)
share setSet share propertiesmanilaclient/osc/v2/share.py:843none7 (1)2.22GET /shares/detail; PUT /shares/{id}; POST /shares/{id}/action (reset_task_state)
share showDisplay share detailsmanilaclient/osc/v2/share.py:792single1 (1)2.9GET /shares/detail; GET /shares/{id}/export_locations
share unsetUnset share propertiesmanilaclient/osc/v2/share.py:974none4 (1)2.0GET /shares/detail; PUT /shares/{id}

manilaclient/osc/v2/share_access_rules.py (6 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share access createCreate new share access rulemanilaclient/osc/v2/share_access_rules.py:41single9 (3)2.45, 2.822.0GET /shares/detail; POST /shares/{id}/action (allow_access)
share access deleteDelete a share access rulemanilaclient/osc/v2/share_access_rules.py:202none4 (2)2.822.0GET /shares/detail; POST /shares/{id}/action (deny_access)
share access listList share access rulemanilaclient/osc/v2/share_access_rules.py:268list6 (1)2.21, 2.33, 2.45, 2.822.0GET /shares/detail; GET /share-access-rules
share access setSet properties to share access rule. Available for API microversion 2.45 and highermanilaclient/osc/v2/share_access_rules.py:433none3 (1)2.45, 2.882.45GET /share-access-rules/{id}; PUT /share-access-rules/{id}/metadata
share access showDisplay a share access rule. Available for API microversion 2.45 and highermanilaclient/osc/v2/share_access_rules.py:389single1 (1)2.452.45GET /share-access-rules/{id}
share access unsetUnset properties of share access rule. Available for API microversion 2.45 and highermanilaclient/osc/v2/share_access_rules.py:519none2 (1)2.452.45GET /share-access-rules/{id}; DELETE /share-access-rules/{id}/metadata/{key}

manilaclient/osc/v2/share_backups.py (7 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share backup createCreate a backup of the given sharemanilaclient/osc/v2/share_backups.py:32single4 (1)2.80GET /shares/{id}; POST /share-backups
share backup deleteDelete one or more share backupsmanilaclient/osc/v2/share_backups.py:87none2 (1)2.80GET /share-backups/{id}; DELETE /share-backups/{id}
share backup listList share backupsmanilaclient/osc/v2/share_backups.py:145list11 (0)2.80GET /share-backups
share backup restoreAttempt to restore share backupmanilaclient/osc/v2/share_backups.py:307none3 (1)2.912.80GET /share-backups/{id}; POST /share-backups/{id}/action (restore)
share backup setSet share backup propertiesmanilaclient/osc/v2/share_backups.py:365none4 (1)2.80GET /share-backups/{id}; PUT /share-backups/{id}
share backup showShow details of a backupmanilaclient/osc/v2/share_backups.py:286single1 (1)2.80GET /share-backups/{id}
share backup unsetUnset share backup propertiesmanilaclient/osc/v2/share_backups.py:451none3 (1)2.80GET /share-backups/{id}; PUT /share-backups/{id}

manilaclient/osc/v2/share_group_snapshots.py (7 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share group snapshot createCreate a share group snapshot of the given share groupmanilaclient/osc/v2/share_group_snapshots.py:26single4 (1)2.31GET /share-groups/{id}; POST /share-group-snapshots
share group snapshot deleteDelete one or more share group snapshotmanilaclient/osc/v2/share_group_snapshots.py:91none3 (1)2.31GET /share-group-snapshots/{id}; DELETE /share-group-snapshots/{id}
share group snapshot listList share group snapshotsmanilaclient/osc/v2/share_group_snapshots.py:328list8 (0)2.31GET /share-group-snapshots/detail
share group snapshot members listList members of share group snapshotmanilaclient/osc/v2/share_group_snapshots.py:441list1 (1)2.31GET /share-group-snapshots/{id}
share group snapshot setSet share group snapshot propertiesmanilaclient/osc/v2/share_group_snapshots.py:186none4 (1)2.31GET /share-group-snapshots/{id}; PUT /share-group-snapshots/{id}
share group snapshot showShow details about a share group snapshotmanilaclient/osc/v2/share_group_snapshots.py:157single1 (1)2.31GET /share-group-snapshots/{id}
share group snapshot unsetUnset a share group snapshot propertymanilaclient/osc/v2/share_group_snapshots.py:277none3 (1)2.31GET /share-group-snapshots/{id}; PUT /share-group-snapshots/{id}

manilaclient/osc/v2/share_group_type_access.py (3 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share group type access createAllow a project to access a share group type (Admin only).manilaclient/osc/v2/share_group_type_access.py:26none3 (2)2.31GET /share-group-types; GET /projects/{id}; POST /share-group-types/{id}/action (addProjectAccess)
share group type access deleteDeny a project to access a share group type (Admin only).manilaclient/osc/v2/share_group_type_access.py:124none3 (2)2.31GET /share-group-types; GET /projects/{id}; POST /share-group-types/{id}/action (removeProjectAccess)
share group type access listGet access list for share group type (Admin only).manilaclient/osc/v2/share_group_type_access.py:90list1 (1)2.31GET /share-group-types; GET /share-group-types/{id}/access

manilaclient/osc/v2/share_group_types.py (6 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share group type createCreate new share group typemanilaclient/osc/v2/share_group_types.py:36single4 (2)2.31GET /types; POST /share-group-types
share group type deleteDelete a share group typemanilaclient/osc/v2/share_group_types.py:131none1 (1)2.31GET /share-group-types; DELETE /share-group-types/{id}
share group type listList share typesmanilaclient/osc/v2/share_group_types.py:177list2 (0)2.31GET /share-group-types
share group type setSet share group type propertiesmanilaclient/osc/v2/share_group_types.py:276none2 (1)2.31GET /share-group-types; POST /share-group-types/{id}/group-specs
share group type showShow share group typesmanilaclient/osc/v2/share_group_types.py:237single1 (1)2.31GET /share-group-types; GET /share-group-types/{id}
share group type unsetUnset share group type extra specsmanilaclient/osc/v2/share_group_types.py:333none2 (2)2.31GET /share-group-types; DELETE /share-group-types/{id}/group-specs/{key}

manilaclient/osc/v2/share_groups.py (6 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share group createCreate new share groupmanilaclient/osc/v2/share_groups.py:26single8 (0)2.31POST /share-groups
share group deleteDelete one or more share groupsmanilaclient/osc/v2/share_groups.py:157none3 (1)2.31GET /share-groups/{id}; DELETE /share-groups/{id}
share group listList share groupsmanilaclient/osc/v2/share_groups.py:226list16 (0)2.362.31GET /share-groups/detail
share group setExplicitly set share group statusmanilaclient/osc/v2/share_groups.py:469none4 (1)2.31GET /share-groups/{id}; PUT /share-groups/{id}
share group showShow details about a share groupmanilaclient/osc/v2/share_groups.py:436single1 (1)2.31GET /share-groups/{id}
share group unsetUnset a share group propertymanilaclient/osc/v2/share_groups.py:540none3 (1)2.31GET /share-groups/{id}; PUT /share-groups/{id}

manilaclient/osc/v2/share_instance_export_locations.py (2 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share instance export location listList share instance export locationsmanilaclient/osc/v2/share_instance_export_locations.py:22list1 (1)2.9GET /share_instances/{id}; GET /share_instances/{id}/export_locations
share instance export location showShow export location for a share instance.manilaclient/osc/v2/share_instance_export_locations.py:62single2 (2)2.9GET /share_instances/{id}; GET /share_instances/{id}/export_locations/{id}

manilaclient/osc/v2/share_instances.py (4 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share instance deleteForces the deletion of a share instancemanilaclient/osc/v2/share_instances.py:28none2 (1)2.3GET /share_instances; POST /share_instances/{id}/action (force_delete)
share instance listList share instancesmanilaclient/osc/v2/share_instances.py:89list2 (0)2.352.3GET /share_instances
share instance setExplicitly reset share instance statusmanilaclient/osc/v2/share_instances.py:154none2 (1)2.3GET /share_instances/{id}; POST /share_instances/{id}/action (reset_status)
share instance showShow share instancemanilaclient/osc/v2/share_instances.py:202single1 (1)2.9GET /share_instances/{id}; GET /share_instances/{id}/export_locations

manilaclient/osc/v2/share_limits.py (1 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share limits showShow a list of share limits for a user.manilaclient/osc/v2/share_limits.py:21list2 (0)2.0GET /limits

manilaclient/osc/v2/share_network_subnets.py (5 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share network subnet createCreate a share network subnetmanilaclient/osc/v2/share_network_subnets.py:30single7 (1)2.70, 2.782.78GET /share-networks/{id}; POST /share-networks/{id}/subnets
share network subnet deleteDelete a share network subnetmanilaclient/osc/v2/share_network_subnets.py:208none2 (2)2.0GET /share-networks/{id}; DELETE /share-networks/{id}/subnets/{id}
share network subnet setSet share network subnet propertiesmanilaclient/osc/v2/share_network_subnets.py:303none3 (2)2.782.78GET /share-networks/{id}; POST /share-networks/{id}/subnets/{id}/metadata
share network subnet showShow share network subnetmanilaclient/osc/v2/share_network_subnets.py:256single2 (2)2.0GET /share-networks/{id}; GET /share-networks/{id}/subnets/{id}
share network subnet unsetUnset a share network subnet propertymanilaclient/osc/v2/share_network_subnets.py:363none3 (2)2.782.78GET /share-networks/{id}; DELETE /share-networks/{id}/subnets/{id}/metadata/{key}

manilaclient/osc/v2/share_networks.py (6 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share network createCreate a share networkmanilaclient/osc/v2/share_networks.py:285single5 (0)2.512.0POST /share-networks
share network deleteDelete one or more share networksmanilaclient/osc/v2/share_networks.py:403none2 (1)2.0GET /share-networks/{id}; DELETE /share-networks/{id}
share network listList share networksmanilaclient/osc/v2/share_networks.py:30list17 (0)2.362.0GET /share-networks/detail
share network setSet share network propertiesmanilaclient/osc/v2/share_networks.py:454none10 (1)2.632.63GET /share-networks/{id}; PUT /share-networks/{id}
share network showShow details about a share networkmanilaclient/osc/v2/share_networks.py:221single1 (1)2.0GET /share-networks/{id}; GET /security-services
share network unsetUnset a share network propertymanilaclient/osc/v2/share_networks.py:737none4 (1)2.0GET /share-networks/{id}; PUT /share-networks/{id}

manilaclient/osc/v2/share_pools.py (1 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share pool listList all backend storage pools known to the scheduler (Admin only).manilaclient/osc/v2/share_pools.py:21list5 (0)2.232.0GET /scheduler-stats/pools

manilaclient/osc/v2/share_replica_export_locations.py (2 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share replica export location listList export locations of a share replica.manilaclient/osc/v2/share_replica_export_locations.py:18list1 (1)2.47GET /share-replicas/{id}; GET /share-replicas/{id}/export-locations
share replica export location showShow details of a share replica's export location.manilaclient/osc/v2/share_replica_export_locations.py:57single2 (2)2.47GET /share-replicas/{id}; GET /share-replicas/{id}/export-locations/{id}

manilaclient/osc/v2/share_replicas.py (8 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share replica createCreate a replica of the given sharemanilaclient/osc/v2/share_replicas.py:28single6 (1)2.67, 2.72, 2.952.11GET /shares/{id}; POST /share-replicas
share replica deleteDelete one or more share replicasmanilaclient/osc/v2/share_replicas.py:159none3 (1)2.11GET /share-replicas/{id}; DELETE /share-replicas/{id}
share replica listList share replicasmanilaclient/osc/v2/share_replicas.py:230list2 (0)2.952.11GET /share-replicas/detail
share replica promotePromote specified replica to 'active' replica_state.manilaclient/osc/v2/share_replicas.py:568none3 (1)2.752.11GET /share-replicas/{id}; POST /share-replicas/{id}/action (promote)
share replica resyncAttempt to update the share replica with its 'active' mirror.manilaclient/osc/v2/share_replicas.py:629none1 (1)2.11GET /share-replicas/{id}; POST /share-replicas/{id}/action (resync)
share replica setExplicitly set share replica status and/or replica-state and/or propertymanilaclient/osc/v2/share_replicas.py:379none4 (1)2.952.11GET /share-replicas/{id}; POST /share-replicas/{id}/action (reset_status)
share replica showShow details about a replicamanilaclient/osc/v2/share_replicas.py:322single1 (1)2.47GET /share-replicas/{id}; GET /share-replicas/{id}/export-locations
share replica unsetUnset a share replica propertymanilaclient/osc/v2/share_replicas.py:507none2 (1)2.952.95GET /share-replicas/{id}; DELETE /share-replicas/{id}/metadata/{key}

manilaclient/osc/v2/share_servers.py (10 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share server abandonRemove one or more share server(s) (Admin only).manilaclient/osc/v2/share_servers.py:376none3 (1)2.49GET /share-servers/{id}; POST /share-servers/{id}/action (unmanage)
share server adoptAdopt share server not handled by Manila (Admin only).manilaclient/osc/v2/share_servers.py:266single6 (3)2.512.51GET /share-networks/{id}; POST /share-servers/manage
share server deleteDelete one or more share serversmanilaclient/osc/v2/share_servers.py:30none2 (1)2.0GET /share-servers/{id}; DELETE /share-servers/{id}
share server listList all share servers (Admin only).manilaclient/osc/v2/share_servers.py:117list8 (0)2.49, 2.51, 2.572.0GET /share-servers
share server migration cancelCancels migration of a given share server when copyingmanilaclient/osc/v2/share_servers.py:557none1 (1)2.572.57GET /share-servers/{id}; POST /share-servers/{id}/action (migration_cancel)
share server migration completeCompletes migration for a given share servermanilaclient/osc/v2/share_servers.py:589none1 (1)2.572.57GET /share-servers/{id}; POST /share-servers/{id}/action (migration_complete)
share server migration showGets migration progress of a given share server when copyingmanilaclient/osc/v2/share_servers.py:617single1 (1)2.572.57POST /share-servers/{id}/action (migration_get_progress)
share server migration startMigrates share server to a new host.manilaclient/osc/v2/share_servers.py:653single7 (5)2.572.57GET /share-servers/{id}; POST /share-servers/{id}/action (migration_start)
share server setSet share server properties (Admin only).manilaclient/osc/v2/share_servers.py:445none3 (1)2.572.57GET /share-servers/{id}; POST /share-servers/{id}/action (reset_status); POST /share-servers/{id}/action (reset_task_state)
share server showShow details about a share server (Admin only).manilaclient/osc/v2/share_servers.py:87single1 (1)2.0GET /share-servers/{id}

manilaclient/osc/v2/share_snapshot_instance_export_locations.py (2 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share snapshot instance export location listList export locations from a share snapshot instance.manilaclient/osc/v2/share_snapshot_instance_export_locations.py:20list1 (1)2.32GET /snapshot-instances; GET /snapshot-instances/{id}/export-locations
share snapshot instance export location showShow export location of the share snapshot instance.manilaclient/osc/v2/share_snapshot_instance_export_locations.py:59single2 (2)2.32GET /snapshot-instances; GET /snapshot-instances/{id}/export-locations/{id}

manilaclient/osc/v2/share_snapshot_instances.py (3 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share snapshot instance listList all share snapshot instancesmanilaclient/osc/v2/share_snapshot_instances.py:21list2 (0)2.19GET /snapshot-instances
share snapshot instance setExplicitly update the state of a share snapshot instance.manilaclient/osc/v2/share_snapshot_instances.py:122none2 (1)2.19POST /snapshot-instances/{id}/action (reset_status)
share snapshot instance showShow details about a share snapshot instance.manilaclient/osc/v2/share_snapshot_instances.py:76single1 (1)2.32GET /snapshot-instances/{id}; GET /snapshot-instances/{id}/export-locations

manilaclient/osc/v2/share_snapshots.py (13 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share snapshot abandonAbandon share snapshot(s)manilaclient/osc/v2/share_snapshots.py:698none2 (1)2.12GET /snapshots/{id}; POST /snapshots/{id}/action (unmanage)
share snapshot access createAllow access to a snapshotmanilaclient/osc/v2/share_snapshots.py:753single3 (3)2.32GET /snapshots/{id}; POST /snapshots/{id}/action (allow_access)
share snapshot access deleteDelete access to a snapshotmanilaclient/osc/v2/share_snapshots.py:802none2 (2)2.32GET /snapshots/{id}; POST /snapshots/{id}/action (deny_access)
share snapshot access listShow access list for a snapshotmanilaclient/osc/v2/share_snapshots.py:854list1 (1)2.32GET /snapshots/{id}; GET /snapshots/{id}/access-list
share snapshot adoptAdopt a share snapshotmanilaclient/osc/v2/share_snapshots.py:619single6 (2)2.12GET /shares/{id}; POST /snapshots/manage
share snapshot createCreate a snapshot of the given sharemanilaclient/osc/v2/share_snapshots.py:29single6 (1)2.732.73GET /shares/{id}; POST /snapshots
share snapshot deleteDelete one or more share snapshotsmanilaclient/osc/v2/share_snapshots.py:117none3 (1)2.0GET /snapshots/{id}; DELETE /snapshots/{id}
share snapshot export location listList export locations of a given snapshotmanilaclient/osc/v2/share_snapshots.py:887list1 (1)2.32GET /snapshots/{id}; GET /snapshots/{id}/export-locations
share snapshot export location showShow export location of the share snapshotmanilaclient/osc/v2/share_snapshots.py:920single2 (2)2.32GET /snapshots/{id}; GET /snapshots/{id}/export-locations/{id}
share snapshot listList snapshotsmanilaclient/osc/v2/share_snapshots.py:415list14 (0)2.36, 2.792.0GET /snapshots/detail
share snapshot setSet share snapshot propertiesmanilaclient/osc/v2/share_snapshots.py:234none5 (1)2.0GET /snapshots/{id}; PUT /snapshots/{id}
share snapshot showShow details about a share snapshotmanilaclient/osc/v2/share_snapshots.py:182single1 (1)2.32GET /snapshots/{id}; GET /snapshots/{id}/export-locations
share snapshot unsetUnset a share snapshot propertymanilaclient/osc/v2/share_snapshots.py:350none4 (1)2.0GET /snapshots/{id}; PUT /snapshots/{id}

manilaclient/osc/v2/share_transfers.py (5 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share transfer acceptAccepts a share transfermanilaclient/osc/v2/share_transfers.py:280none3 (2)2.77POST /share-transfers/{id}/accept
share transfer createCreate a new share transfermanilaclient/osc/v2/share_transfers.py:46single2 (1)2.77GET /shares/{id}; POST /share-transfers
share transfer deleteRemove one or more transfersmanilaclient/osc/v2/share_transfers.py:76none1 (1)2.77GET /share-transfers/detail; DELETE /share-transfers/{id}
share transfer listLists all transfersmanilaclient/osc/v2/share_transfers.py:114list11 (0)2.77GET /share-transfers
share transfer showShow details about a share transfermanilaclient/osc/v2/share_transfers.py:251single1 (1)2.77GET /share-transfers/detail

manilaclient/osc/v2/share_type_access.py (3 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share type access createAdd access for share typemanilaclient/osc/v2/share_type_access.py:21none2 (2)2.0GET /types; POST /types/{id}/action (addProjectAccess)
share type access deleteDelete access from share typemanilaclient/osc/v2/share_type_access.py:92none2 (2)2.0GET /types; POST /types/{id}/action (removeProjectAccess)
share type access listGet access list for share typemanilaclient/osc/v2/share_type_access.py:58list1 (1)2.0GET /types; GET /types/{id}/share_type_access

manilaclient/osc/v2/share_types.py (6 commands)

CommandPurposeDefined atOutputArgs (required)Gates in the commandLowest version exit 0Requests observed at 2.98
share type createCreate new share typemanilaclient/osc/v2/share_types.py:75single9 (2)2.412.0POST /types
share type deleteDelete a share typemanilaclient/osc/v2/share_types.py:228none1 (1)2.0GET /types; DELETE /types/{id}
share type listList share typesmanilaclient/osc/v2/share_types.py:417list2 (0)2.432.0GET /types
share type setSet share type propertiesmanilaclient/osc/v2/share_types.py:272none5 (1)2.502.50GET /types; PUT /types/{id}
share type showDisplay share type detailsmanilaclient/osc/v2/share_types.py:484single1 (1)2.0GET /types
share type unsetUnset share type extra specsmanilaclient/osc/v2/share_types.py:381none2 (2)2.0GET /types; DELETE /types/{id}/extra_specs/{key}

4. Relation with openstackclient.share.v2

python-openstackclient holds 40 commands in its own openstack.share.v2 group (openstackclient:pyproject.toml:680), a copy of part of this plugin: share group*, share lock, share message, share security service, share service. They are never loaded [observed in the OSC spec]: openstackclient.share.v2 is listed in IGNORED_MODULES with a FIXME that says the implementation is not complete (openstackclient:openstackclient/shell.py:43), and openstackclient/share/client.py is not in openstack.cli.base (openstackclient:pyproject.toml:40-46). So share commands always come from this plugin, which OSC requires (openstackclient:requirements.txt:12). All 40 names exist here, and these 114 exist only here: share itself, access, snapshots, replicas, instances, networks, servers, types, backups, transfers, QoS, quotas and migration.

A class-by-class comparison of the 40 gives 24 identical once type annotations are removed. Most of the other 16 differ in message text or _() wrapping. These differences matter:

PointThis pluginopenstackclient.share.v2Source
Version negotiationdiscovery, default 2.98, lowered to the server maximumno discovery, default 2, version as givenmanilaclient/osc/plugin.py:63, openstackclient:openstackclient/share/client.py:38, openstackclient:openstackclient/share/client.py:30
Endpoint override--os-endpoint-overridenonemanilaclient/osc/plugin.py:136, openstackclient:openstackclient/share/client.py:68
share service list--ensuring; Ensuring column from 2.93no --ensuring; column from 2.86manilaclient/osc/v2/services.py:160, manilaclient/osc/v2/services.py:182, openstackclient:openstackclient/share/v2/services.py:174
share lock list--project-domain, --user-domainabsentmanilaclient/osc/v2/resource_locks.py:286, openstackclient:openstackclient/share/v2/resource_locks.py:176
share group type create --publicstrutils.bool_from_string(default=True)envvars.bool_from_strmanilaclient/osc/v2/share_group_types.py:106, openstackclient:openstackclient/share/v2/share_group_types.py:111

Both use manilaclient managers, so the wire format is the same on the shared commands [inferred: read from the code; the OSC copy cannot run through the normal shell].

Source: reverse-spec-python-manilaclient/01-cli-commands_stable-2026.2.md. The _rewrite/ and _inventory/ files are not published on the site.