* $serviceconsumermanagementService = new Google\Service\ServiceConsumerManagement(...); * $tenancyUnits = $serviceconsumermanagementService->tenancyUnits; * */ class ServicesTenancyUnits extends \Google\Service\Resource { /** * Add a new tenant project to the tenancy unit. There can be a maximum of 1024 * tenant projects in a tenancy unit. If there are previously failed * `AddTenantProject` calls, you might need to call `RemoveTenantProject` first * to resolve them before you can make another call to `AddTenantProject` with * the same tag. Operation. (tenancyUnits.addProject) * * @param string $parent Required. Name of the tenancy unit. Such as * 'services/service.googleapis.com/projects/12345/tenancyUnits/abcd'. * @param AddTenantProjectRequest $postBody * @param array $optParams Optional parameters. * @return Operation */ public function addProject($parent, AddTenantProjectRequest $postBody, $optParams = []) { $params = ['parent' => $parent, 'postBody' => $postBody]; $params = array_merge($params, $optParams); return $this->call('addProject', [$params], Operation::class); } /** * Apply a configuration to an existing tenant project. This project must exist * in an active state and have the original owner account. The caller must have * permission to add a project to the given tenancy unit. The configuration is * applied, but any existing settings on the project aren't modified. Specified * policy bindings are applied. Existing bindings aren't modified. Specified * services are activated. No service is deactivated. If specified, new billing * configuration is applied. Omit a billing configuration to keep the existing * one. A service account in the project is created if previously non existed. * Specified labels will be appended to tenant project, note that the value of * existing label key will be updated if the same label key is requested. The * specified folder is ignored, as moving a tenant project to a different folder * isn't supported. The operation fails if any of the steps fail, but no * rollback of already applied configuration changes is attempted. Operation. * (tenancyUnits.applyProjectConfig) * * @param string $name Required. Name of the tenancy unit. Such as * 'services/service.googleapis.com/projects/12345/tenancyUnits/abcd'. * @param ApplyTenantProjectConfigRequest $postBody * @param array $optParams Optional parameters. * @return Operation */ public function applyProjectConfig($name, ApplyTenantProjectConfigRequest $postBody, $optParams = []) { $params = ['name' => $name, 'postBody' => $postBody]; $params = array_merge($params, $optParams); return $this->call('applyProjectConfig', [$params], Operation::class); } /** * Attach an existing project to the tenancy unit as a new tenant resource. The * project could either be the tenant project reserved by calling * `AddTenantProject` under a tenancy unit of a service producer's project of a * managed service, or from a separate project. The caller is checked against a * set of permissions as if calling `AddTenantProject` on the same service * consumer. To trigger the attachment, the targeted tenant project must be in a * folder. Make sure the ServiceConsumerManagement service account is the owner * of that project. These two requirements are already met if the project is * reserved by calling `AddTenantProject`. Operation. * (tenancyUnits.attachProject) * * @param string $name Required. Name of the tenancy unit that the project will * be attached to. Such as * 'services/service.googleapis.com/projects/12345/tenancyUnits/abcd'. * @param AttachTenantProjectRequest $postBody * @param array $optParams Optional parameters. * @return Operation */ public function attachProject($name, AttachTenantProjectRequest $postBody, $optParams = []) { $params = ['name' => $name, 'postBody' => $postBody]; $params = array_merge($params, $optParams); return $this->call('attachProject', [$params], Operation::class); } /** * Creates a tenancy unit with no tenant resources. If tenancy unit already * exists, it will be returned, however, in this case, returned TenancyUnit does * not have tenant_resources field set and ListTenancyUnits has to be used to * get a complete TenancyUnit with all fields populated. (tenancyUnits.create) * * @param string $parent Required. services/{service}/{collection id}/{resource * id} {collection id} is the cloud resource collection type representing the * service consumer, for example 'projects', or 'organizations'. {resource id} * is the consumer numeric id, such as project number: '123456'. {service} the * name of a managed service, such as 'service.googleapis.com'. Enables service * binding using the new tenancy unit. * @param CreateTenancyUnitRequest $postBody * @param array $optParams Optional parameters. * @return TenancyUnit */ public function create($parent, CreateTenancyUnitRequest $postBody, $optParams = []) { $params = ['parent' => $parent, 'postBody' => $postBody]; $params = array_merge($params, $optParams); return $this->call('create', [$params], TenancyUnit::class); } /** * Delete a tenancy unit. Before you delete the tenancy unit, there should be no * tenant resources in it that aren't in a DELETED state. Operation. * (tenancyUnits.delete) * * @param string $name Required. Name of the tenancy unit to be deleted. * @param array $optParams Optional parameters. * @return Operation */ public function delete($name, $optParams = []) { $params = ['name' => $name]; $params = array_merge($params, $optParams); return $this->call('delete', [$params], Operation::class); } /** * Deletes the specified project resource identified by a tenant resource tag. * The mothod removes a project lien with a 'TenantManager' origin if that was * added. It will then attempt to delete the project. If that operation fails, * this method also fails. After the project has been deleted, the tenant * resource state is set to DELETED. To permanently remove resource metadata, * call the `RemoveTenantProject` method. New resources with the same tag can't * be added if there are existing resources in a DELETED state. Operation. * (tenancyUnits.deleteProject) * * @param string $name Required. Name of the tenancy unit. Such as * 'services/service.googleapis.com/projects/12345/tenancyUnits/abcd'. * @param DeleteTenantProjectRequest $postBody * @param array $optParams Optional parameters. * @return Operation */ public function deleteProject($name, DeleteTenantProjectRequest $postBody, $optParams = []) { $params = ['name' => $name, 'postBody' => $postBody]; $params = array_merge($params, $optParams); return $this->call('deleteProject', [$params], Operation::class); } /** * Find the tenancy unit for a managed service and service consumer. This method * shouldn't be used in a service producer's runtime path, for example to find * the tenant project number when creating VMs. Service producers must persist * the tenant project's information after the project is created. * (tenancyUnits.listServicesTenancyUnits) * * @param string $parent Required. Managed service and service consumer. * Required. services/{service}/{collection id}/{resource id} {collection id} is * the cloud resource collection type representing the service consumer, for * example 'projects', or 'organizations'. {resource id} is the consumer numeric * id, such as project number: '123456'. {service} the name of a service, such * as 'service.googleapis.com'. * @param array $optParams Optional parameters. * * @opt_param string filter Optional. Filter expression over tenancy resources * field. Optional. * @opt_param int pageSize Optional. The maximum number of results returned by * this request. * @opt_param string pageToken Optional. The continuation token, which is used * to page through large result sets. To get the next page of results, set this * parameter to the value of `nextPageToken` from the previous response. * @return ListTenancyUnitsResponse */ public function listServicesTenancyUnits($parent, $optParams = []) { $params = ['parent' => $parent]; $params = array_merge($params, $optParams); return $this->call('list', [$params], ListTenancyUnitsResponse::class); } /** * Removes the specified project resource identified by a tenant resource tag. * The method removes the project lien with 'TenantManager' origin if that was * added. It then attempts to delete the project. If that operation fails, this * method also fails. Calls to remove already removed or non-existent tenant * project succeed. After the project has been deleted, or if was already in a * DELETED state, resource metadata is permanently removed from the tenancy * unit. Operation. (tenancyUnits.removeProject) * * @param string $name Required. Name of the tenancy unit. Such as * 'services/service.googleapis.com/projects/12345/tenancyUnits/abcd'. * @param RemoveTenantProjectRequest $postBody * @param array $optParams Optional parameters. * @return Operation */ public function removeProject($name, RemoveTenantProjectRequest $postBody, $optParams = []) { $params = ['name' => $name, 'postBody' => $postBody]; $params = array_merge($params, $optParams); return $this->call('removeProject', [$params], Operation::class); } /** * Attempts to undelete a previously deleted tenant project. The project must be * in a DELETED state. There are no guarantees that an undeleted project will be * in a fully restored and functional state. Call the `ApplyTenantProjectConfig` * method to update its configuration and then validate all managed service * resources. Operation. (tenancyUnits.undeleteProject) * * @param string $name Required. Name of the tenancy unit. Such as * 'services/service.googleapis.com/projects/12345/tenancyUnits/abcd'. * @param UndeleteTenantProjectRequest $postBody * @param array $optParams Optional parameters. * @return Operation */ public function undeleteProject($name, UndeleteTenantProjectRequest $postBody, $optParams = []) { $params = ['name' => $name, 'postBody' => $postBody]; $params = array_merge($params, $optParams); return $this->call('undeleteProject', [$params], Operation::class); } } // Adding a class alias for backwards compatibility with the previous class name. class_alias(ServicesTenancyUnits::class, 'Google_Service_ServiceConsumerManagement_Resource_ServicesTenancyUnits');