Summary
Add project_ext_id field support and share/unshare project operations to existing v2 modules to support Projects 2.0 (Multi-Domain) workflows. This enables entities to be associated with projects at creation time and shared/unshared with projects post-creation.
Docs: https://developers.internal.nutanix.com/
Scope
A. Modules requiring project_ext_id + Share/Unshare with Project operations
These modules need:
project_ext_id field in create/update spec
share_with_project action
unshare_from_project action
Some also support "all projects" variants.
| # | Namespace | Entity | Module | Share | Share All | Unshare | Unshare All |
|---|-----------|--------|--------|:-----:|:---------:|:-------:|:-----------:|
| 1 | IAM | Directory Service | ntnx_directory_services_v2 | Yes | Yes | Yes | Yes |
| 2 | IAM | SAML Identity Provider | ntnx_saml_identity_providers_v2 | Yes | Yes | Yes | Yes |
| 3 | Prism | Categories | ntnx_categories_v2 | Yes | No | Yes | No |
| 4 | Networking | Subnets | ntnx_subnets_v2 | Yes | No | Yes | No |
| 5 | Networking | VPC | ntnx_vpcs_v2 | Yes | No | Yes | No |
Note: Virtual Switch also supports share/unshare but no existing module exists (module TBD or new feature).
B. Modules requiring only project_ext_id field addition
These modules only need the project_ext_id field added to the create/update spec (no share/unshare APIs).
| # |
Namespace |
Entity |
Module |
| 1 |
IAM |
Authorization Policies |
ntnx_authorization_policies_v2 |
| 2 |
IAM |
Roles |
ntnx_roles_v2 |
| 3 |
VMM |
VM (Create) |
ntnx_vms_v2 |
| 4 |
VMM |
Image |
ntnx_images_v2 |
| 5 |
VMM |
OVA |
ntnx_ova_v2 |
| 6 |
VMM |
Templates |
ntnx_templates_v2 |
| 7 |
Networking |
Floating IPs |
ntnx_floating_ips_v2 |
| 8 |
Networking |
Routes |
ntnx_routes_v2 |
| 9 |
Networking |
Routing Policies |
ntnx_pbrs_v2 |
| 10 |
Networking |
Network Functions |
No existing module |
| 11 |
Flow Mgmt |
Address Groups |
ntnx_address_groups_v2 |
| 12 |
Flow Mgmt |
Service Groups |
ntnx_service_groups_v2 |
| 13 |
Flow Mgmt |
Network Security Policy |
ntnx_security_rules_v2 |
| 14 |
Flow Mgmt |
Entity Groups |
No existing module |
| 15 |
Data Protection |
Recovery Points |
ntnx_recovery_points_v2 |
| 16 |
Data Policies |
Protection Policies |
ntnx_protection_policies_v2 |
| 17 |
Object Storage |
Object Store |
ntnx_object_stores_v2 (in metadata) |
| 18 |
Volumes |
Volume Groups |
ntnx_volume_groups_v2 |
Implementation Details
project_ext_id field
- Add
project_ext_id (string, optional) to the Ansible spec of each module listed above
- Pass as
metadata.project_reference or equivalent v4 field in the API request body
- Should be supported in
state: present (create/update)
Share/Unshare operations (Section A modules only)
- Add new
state values or a separate action parameter:
share_with_project – share entity with a specific project
share_with_all_projects – share entity with all projects (where supported)
unshare_from_project – unshare entity from a specific project
unshare_from_all_projects – unshare entity from all projects (where supported)
- Each operation requires the entity
ext_id and (where applicable) project_ext_id
Todo
Per-module checklist (repeat for each module):
Modules with share/unshare:
Modules with project_ext_id only:
Summary
Add
project_ext_idfield support and share/unshare project operations to existing v2 modules to support Projects 2.0 (Multi-Domain) workflows. This enables entities to be associated with projects at creation time and shared/unshared with projects post-creation.Docs: https://developers.internal.nutanix.com/
Scope
A. Modules requiring
project_ext_id+ Share/Unshare with Project operationsThese modules need:
project_ext_idfield in create/update specshare_with_projectactionunshare_from_projectactionSome also support "all projects" variants.
| # | Namespace | Entity | Module | Share | Share All | Unshare | Unshare All |
|---|-----------|--------|--------|:-----:|:---------:|:-------:|:-----------:|
| 1 | IAM | Directory Service |
ntnx_directory_services_v2| Yes | Yes | Yes | Yes || 2 | IAM | SAML Identity Provider |
ntnx_saml_identity_providers_v2| Yes | Yes | Yes | Yes || 3 | Prism | Categories |
ntnx_categories_v2| Yes | No | Yes | No || 4 | Networking | Subnets |
ntnx_subnets_v2| Yes | No | Yes | No || 5 | Networking | VPC |
ntnx_vpcs_v2| Yes | No | Yes | No |B. Modules requiring only
project_ext_idfield additionThese modules only need the
project_ext_idfield added to the create/update spec (no share/unshare APIs).ntnx_authorization_policies_v2ntnx_roles_v2ntnx_vms_v2ntnx_images_v2ntnx_ova_v2ntnx_templates_v2ntnx_floating_ips_v2ntnx_routes_v2ntnx_pbrs_v2ntnx_address_groups_v2ntnx_service_groups_v2ntnx_security_rules_v2ntnx_recovery_points_v2ntnx_protection_policies_v2ntnx_object_stores_v2(in metadata)ntnx_volume_groups_v2Implementation Details
project_ext_idfieldproject_ext_id(string, optional) to the Ansible spec of each module listed abovemetadata.project_referenceor equivalent v4 field in the API request bodystate: present(create/update)Share/Unshare operations (Section A modules only)
statevalues or a separate action parameter:share_with_project– share entity with a specific projectshare_with_all_projects– share entity with all projects (where supported)unshare_from_project– unshare entity from a specific projectunshare_from_all_projects– unshare entity from all projects (where supported)ext_idand (where applicable)project_ext_idTodo
Per-module checklist (repeat for each module):
project_ext_idto Ansible spec & spec validatorModules with share/unshare:
ntnx_directory_services_v2– project_ext_id + share/unshare + share_all/unshare_allntnx_saml_identity_providers_v2– project_ext_id + share/unshare + share_all/unshare_allntnx_categories_v2– project_ext_id + share/unsharentnx_subnets_v2– project_ext_id + share/unsharentnx_vpcs_v2– project_ext_id + share/unshareModules with project_ext_id only:
ntnx_authorization_policies_v2ntnx_roles_v2ntnx_vms_v2ntnx_images_v2ntnx_ova_v2ntnx_templates_v2ntnx_floating_ips_v2ntnx_routes_v2ntnx_pbrs_v2ntnx_address_groups_v2ntnx_service_groups_v2ntnx_security_rules_v2ntnx_recovery_points_v2ntnx_protection_policies_v2ntnx_object_stores_v2ntnx_volume_groups_v2