EMC ViPR REST API

Search (SHIFT+S)

API Reference


Set Tenant

PUT /tenants/{id}

Update info for tenant or subtenant

idthe URN of a ViPR Tenant/Subtenant

Required Roles

Requires one of the following roles:

  • TENANT_ADMIN
  • SECURITY_ADMIN

Prerequisites

These conditions must be met before calling this operation.

  • If modifying user mappings, an authentication provider needs to support the domain used in the mappings

Request Payload

All parameters are required unless otherwise stated.

Field Description Type Notes
<tenant_update>
<name> Name change for the tenant. Any free form string within length limits String Valid Values:
  •  Length: 2..128
<user_mapping_changes>    
<add>
<user_mapping>     0-* Elements
<domain> A single-valued attribute indicating the user's IDP domain String
<attributes>
<attribute>     0-* Elements
<key> Lookup string for this key-value pair String
<value> Lookup result for this key-value pair String 0-* Elements
</attribute>      
</attributes>
<groups>
<group> String 0-* Elements
</groups>
</user_mapping>      
</add>
<remove>
<user_mapping>     0-* Elements
<domain> A single-valued attribute indicating the user's IDP domain String
<attributes>
<attribute>     0-* Elements
<key> Lookup string for this key-value pair String
<value> Lookup result for this key-value pair String 0-* Elements
</attribute>      
</attributes>
<groups>
<group> String 0-* Elements
</groups>
</user_mapping>      
</remove>
</user_mapping_changes>      
<description> Description for the tenant. String
<namespace> Namespace associated to a tenant. String
<detachNamespace> Parameter to detach namespace from a tenant. Boolean
<namespaceStorage> Namespace object storage associated to a tenant. URI
<web_storage_default_project> Default project URI for this tenant URI
<web_storage_default_vpool> Default virtual pool URI for this tenant URI
</tenant_update>

Response Body

The updated Tenant/Subtenant instance

Field Description Type Notes
<tenant>
<description> Optional Detailed Description of the Tenant String
<parent_tenant>    
<id> ViPR ID of the related object URI
<link> A hyperlink to the related object
</parent_tenant>      
<user_mappings> User mappings define how a user is mapped to a tenant. The user can be mapped to a tenant using parameters such as domains, LDAP attributes, and AD group membership.
<user_mapping>     0-* Elements
<domain> A single-valued attribute indicating the user's IDP domain String
<attributes>
<attribute>     0-* Elements
<key> Lookup string for this key-value pair String
<value> Lookup result for this key-value pair String 0-* Elements
</attribute>      
</attributes>
<groups>
<group> String 0-* Elements
</groups>
</user_mapping>      
</user_mappings>
<namespace> Namespace mapped to the Tenant String
<namespace_storage_system> Namespace associated with storage mapped to the Tenant URI
<name> The name assigned to this resource in ViPR. The resource name is set by a user and can be changed at any time. It is not a unique identifier. String
<id> An identifier that is generated by ViPR when the resource is created. The resource ID is guaranteed to be unique and immutable across all virtual data centers for all time. URI
<link> A hyperlink to the details for this resource
<creation_time> A timestamp that shows when this resource was created in ViPR DateTime
<tags> Keywords and labels that can be added by a user to a resource to make it easy to find when doing a search.
<tag> String 0-* Elements
</tags>
<inactive> Whether or not the resource is inactive. When a user removes a resource, the resource is put in this state before it is removed from the ViPR database. Boolean
<global> Boolean
<remote> Boolean
<vdc>    
<id> ViPR ID of the related object URI
<link> A hyperlink to the related object
</vdc>      
<internal> Whether or not the resource is an internal resource. Boolean
</tenant>

Examples

Request
PUT https://192.168.0.0:4443/tenants/urn:storageos:TenantOrg:dbeb4135-e297-40d9-a5d4-9b40c73bdb4b: HTTP/1.1

Content-Type: application/xml
X-SDS-AUTH-TOKEN: <AUTH_TOKEN>

<tenant_update>
   <user_mapping_changes>
      <add>
         <user_mapping>
             <domain>sanity.local</domain>
             <groups>
		       <group>test Group</group>
             </groups> 
         </user_mapping>
      </add>
   </user_mapping_changes>
</tenant_update>
Response
HTTP/1.1 200 OK
Content-Type: application/xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  <tenant>
       <creation_time>1379168259060</creation_time>
       <id>urn:storageos:TenantOrg:dbeb4135-e297-40d9-a5d4-9b40c73bdb4b:</id>
       <inactive>false</inactive>
       <link href="/tenants/urn:storageos:TenantOrg:dbeb4135-e297-40d9-a5d4-9b40c73bdb4b:" rel="self"/>
       <name>Provider Tenant</name>
       <tags/>
       <description>Root Provider Tenant</description>
       <user_mappings>
            <user_mapping>
                 <attributes>
                      <attribute>
                           <key>ou</key>
                           <value>sanity</value>
                      </attribute>
                 </attributes>
                 <domain>sanity.local</domain>
                 <groups/>
            </user_mapping>
            <user_mapping>
                 <attributes/>
                 <domain>sanity.local</domain>
                 <groups>
                      <group>test Group</group>
                 </groups>
            </user_mapping>
       </user_mappings>
  </tenant>