Get Tenant by Name

{ getTenantByName }

Returns a tenant and its metadata using its name.

Method

/API2/access/getTenantByName

  • API Section: /API2/access
  • API Version: 2.0
  • From Release: 2018.5
  • Method operates via POST actions only.
  • Input Parameters

    Name

    name

    Type

    string

    Description

    The tenant's name

    Output Response

    Successful Result Code

    200

    Response Type

    Description of Response Type

    The tenant object contains all relevant meta-data for the tenant.

    Notes

    Use this method to find the tenant ID needed in other methods.

    Examples
    User Operations (JavaScript):

    This example demonstrates how to find and delete users, roles and tenants.

    The example uses API authentication driven from JavaScript. See Authentication APIs for alternatives.

    // URL of the Pyramid installation and the path to the API 2.0 REST methods
    var pyramidURL = "http://mysite.com/api2/";
    
    // step 1: authenticate admin account and get token
    // NOTE: callApi method is a generic REST method shown below.
    let token = callApi("auth/authenticateUser",{
    	"data":{
    		"userName":"adminUser1",
    		"password":"abc123!"
    	}
    },false);
    log("got token "+token);
    
    //########## user ################
    
    //step 2: searching for a user by it's name
    let findUser= callApi("access/getUsersByName",{
    	"userName": "john",
    	"auth": token // admin token generated above
    });
    				
    // get user ID				
    let userId=findUser.data[0].id;
    				
    log("found user with id= "+ userId);
    
    //step 3: deleting the role
    let deleteUser=callApi("access/deleteUser",{
    	"userId": userId, //from step 2
    	"auth": token // admin token generated above
    });
    
    
    //########## role ################
    
    //step 4: searching for a role by it's name
    let findRole= callApi("access/getRolesByName",{
    	"data": {
    		"searchValue": "test role",
    		"searchMatchType": 2// search flag enumerations. 2 = SearchMatchType.Equals
    	},
    	"auth": token // admin token generated above
    });
    // get role ID	
    let roleId=findRole.data[0].roleId;
    				
    log("found role with id= "+ roleId);
    
    //step 5: deleting the role
    let deleteRole=callApi("access/deleteRole",{
    	"roleId": roleId, // from step 4
    	"auth": token
    });
    
    
    //########## tenant ################
    
    //step 6: search for tenant
    let findTenenat=callApi("access/getTenantByName",{
    	"tenantName": "Test Tenant 1",
    	"auth": token
    });
    // get tenant ID					
    let tenantId=findTenenat.data.id;
    				
    log("found tenant by name "+ tenantId);
    
    //step 7: delete the tenant we found in step 2
    let deleteTenants=callApi("access/deleteTenants",{
    	"data": {
    	"tenantIds": [
    		tenantId
    	], // use the array method, because it can accept multiple ID's
    	"deleteUsers": true, //delete all tenant users
    	"deleteServers": true //delete all data source servers associated with tenant
    	},
    	"auth": token
    });
    
    
    
    // ##### optional generic logging method for debugging ##############
    function log(msg){
    	document.write(msg);
    	console.log(msg);
    }
    
    // ##### generic REST API calling method ##############
    function callApi(path,data,parseResult=true){
    	var xhttp = new XMLHttpRequest();
    	xhttp.open("POST", pyramidURL+path, false);
    	xhttp.send(JSON.stringify(data));
    	if(parseResult){
    		return JSON.parse(xhttp.responseText);
    	}else{
    		return xhttp.responseText;
    	}
    }
    
    
    		
    Content and Tag Operations (JavaScript):

    This example demonstrates how to find item's and the manipulation of content tags.

    The example uses API authentication driven from JavaScript. See Authentication APIs for alternatives.

    // URL of the Pyramid installation and the path to the API 2.0 REST methods
    var pyramidURL = "http://mysite.com/api2/";
    
    
    // step 1: authenticate admin account and get token
    // NOTE: callApi method is a generic REST method shown below.
    let token = callApi("auth/authenticateUser",{
    	"data":{
    		"userName":"adminUser",
    		"password":"abc123!"
    	}
    },false);
    
    
    //step 2: search for tenant by name
    let tenant=callApi("access/getTenantByName",{
    	"tenantName": "Company X",
    	"auth": token
    });
    
    let tenantId;
    
    //step 3: if tenant is found, get its ID. Otherwise create the tenant
    if(tenant.data != undefined){
    
        tenantId=tenant.data.id;
        log("found tenant with id "+ tenantId);
    	
    }else{
    
        log("tenant was not found ,creating one");
        let createTenantResult = callApi("access/createTenant",{
          "tenant": {
            "name": "Company X",
            "viewerSeats": 1,
            "proSeats": 1
          },
          "auth": token
        });
        tenantId = createTenantResult.data.modifiedList[0].id;
    	
    }
    
    
    //step 4: delete the tenant we found in step 2
    let deleteTenants=callApi("access/deleteTenants",{
    	"data": {
    	"tenantIds": [
    		tenantId
    	],
    	"deleteUsers": true,
    	"deleteServers": true
    	},
    	"auth": token
    });
    
    //step 5: get the default tenant
    let defaultTenant = callApi("access/getDefaultTenant",{
      "auth": token
    });
    
    let defaultTenantId = defaultTenant.data;
    
    
    //step 6: get available licenses by type for default tenant
    let proSeatsNumber = callApi("access/getAvailableTenantLicenseCount",{
      "tenantLicenseTypeData": {
        "tenantId": defaultTenantId,
        "licenseType": 200,
      },
      "auth": token
    });
    log("The default tenant has "+ proSeatsNumber.data + " available pro seats licenses");
    
    //step 7: get available users for tenant by license type
    let proSeatsUsersData = callApi("access/getAllUsersDataByTenantAndLicenceType",{
      "tenantUsersGetObject": {
        "tenantId": defaultTenantId,
        "clientLicenseType": 200,
      },
      "auth": token
    });
    
    
    // ##### optional generic logging method for debugging ##############
    function log(msg){
    	document.write(msg);
    	console.log(msg);
    }
    
    // ##### generic REST API calling method ##############
    function callApi(path,data,parseResult=true){
    	var xhttp = new XMLHttpRequest();
    	xhttp.open("POST", pyramidURL+path, false);
    	xhttp.send(JSON.stringify(data));
    	if(parseResult){
    		return JSON.parse(xhttp.responseText);
    	}else{
    		return xhttp.responseText;
    	}
    }