 Get Tenant by Name
 Get Tenant by Name
                                    { getTenantByName }
Returns a tenant and its metadata using its name.
Method
/API2/access/getTenantByName
                                    
                                    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;
	}
}
		 AdminMultiTenantData
 AdminMultiTenantData