* $spannerService = new Google\Service\Spanner(...); * $instances = $spannerService->instances; * */ class ProjectsInstances extends \Google\Service\Resource { /** * Creates an instance and begins preparing it to begin serving. The returned * long-running operation can be used to track the progress of preparing the new * instance. The instance name is assigned by the caller. If the named instance * already exists, `CreateInstance` returns `ALREADY_EXISTS`. Immediately upon * completion of this request: * The instance is readable via the API, with all * requested attributes but no allocated resources. Its state is `CREATING`. * Until completion of the returned operation: * Cancelling the operation * renders the instance immediately unreadable via the API. * The instance can * be deleted. * All other attempts to modify the instance are rejected. Upon * completion of the returned operation: * Billing for all successfully- * allocated resources begins (some types may have lower than the requested * levels). * Databases can be created in the instance. * The instance's * allocated resource levels are readable via the API. * The instance's state * becomes `READY`. The returned long-running operation will have a name of the * format `/operations/` and can be used to track creation of the instance. The * metadata field type is CreateInstanceMetadata. The response field type is * Instance, if successful. (instances.create) * * @param string $parent Required. The name of the project in which to create * the instance. Values are of the form `projects/`. * @param CreateInstanceRequest $postBody * @param array $optParams Optional parameters. * @return Operation */ public function create($parent, CreateInstanceRequest $postBody, $optParams = []) { $params = ['parent' => $parent, 'postBody' => $postBody]; $params = array_merge($params, $optParams); return $this->call('create', [$params], Operation::class); } /** * Deletes an instance. Immediately upon completion of the request: * Billing * ceases for all of the instance's reserved resources. Soon afterward: * The * instance and *all of its databases* immediately and irrevocably disappear * from the API. All data in the databases is permanently deleted. * (instances.delete) * * @param string $name Required. The name of the instance to be deleted. Values * are of the form `projects//instances/` * @param array $optParams Optional parameters. * @return SpannerEmpty */ public function delete($name, $optParams = []) { $params = ['name' => $name]; $params = array_merge($params, $optParams); return $this->call('delete', [$params], SpannerEmpty::class); } /** * Gets information about a particular instance. (instances.get) * * @param string $name Required. The name of the requested instance. Values are * of the form `projects//instances/`. * @param array $optParams Optional parameters. * * @opt_param string fieldMask If field_mask is present, specifies the subset of * Instance fields that should be returned. If absent, all Instance fields are * returned. * @return Instance */ public function get($name, $optParams = []) { $params = ['name' => $name]; $params = array_merge($params, $optParams); return $this->call('get', [$params], Instance::class); } /** * Gets the access control policy for an instance resource. Returns an empty * policy if an instance exists but does not have a policy set. Authorization * requires `spanner.instances.getIamPolicy` on resource. * (instances.getIamPolicy) * * @param string $resource REQUIRED: The Cloud Spanner resource for which the * policy is being retrieved. The format is `projects//instances/` for instance * resources and `projects//instances//databases/` for database resources. * @param GetIamPolicyRequest $postBody * @param array $optParams Optional parameters. * @return Policy */ public function getIamPolicy($resource, GetIamPolicyRequest $postBody, $optParams = []) { $params = ['resource' => $resource, 'postBody' => $postBody]; $params = array_merge($params, $optParams); return $this->call('getIamPolicy', [$params], Policy::class); } /** * Lists all instances in the given project. (instances.listProjectsInstances) * * @param string $parent Required. The name of the project for which a list of * instances is requested. Values are of the form `projects/`. * @param array $optParams Optional parameters. * * @opt_param string filter An expression for filtering the results of the * request. Filter rules are case insensitive. The fields eligible for filtering * are: * `name` * `display_name` * `labels.key` where key is the name of a * label Some examples of using filters are: * `name:*` --> The instance has a * name. * `name:Howl` --> The instance's name contains the string "howl". * * `name:HOWL` --> Equivalent to above. * `NAME:howl` --> Equivalent to above. * * `labels.env:*` --> The instance has the label "env". * `labels.env:dev` --> * The instance has the label "env" and the value of the label contains the * string "dev". * `name:howl labels.env:dev` --> The instance's name contains * "howl" and it has the label "env" with its value containing "dev". * @opt_param string instanceDeadline Deadline used while retrieving metadata * for instances. Instances whose metadata cannot be retrieved within this * deadline will be added to unreachable in ListInstancesResponse. * @opt_param int pageSize Number of instances to be returned in the response. * If 0 or less, defaults to the server's maximum allowed page size. * @opt_param string pageToken If non-empty, `page_token` should contain a * next_page_token from a previous ListInstancesResponse. * @return ListInstancesResponse */ public function listProjectsInstances($parent, $optParams = []) { $params = ['parent' => $parent]; $params = array_merge($params, $optParams); return $this->call('list', [$params], ListInstancesResponse::class); } /** * Updates an instance, and begins allocating or releasing resources as * requested. The returned long-running operation can be used to track the * progress of updating the instance. If the named instance does not exist, * returns `NOT_FOUND`. Immediately upon completion of this request: * For * resource types for which a decrease in the instance's allocation has been * requested, billing is based on the newly-requested level. Until completion of * the returned operation: * Cancelling the operation sets its metadata's * cancel_time, and begins restoring resources to their pre-request values. The * operation is guaranteed to succeed at undoing all resource changes, after * which point it terminates with a `CANCELLED` status. * All other attempts to * modify the instance are rejected. * Reading the instance via the API * continues to give the pre-request resource levels. Upon completion of the * returned operation: * Billing begins for all successfully-allocated resources * (some types may have lower than the requested levels). * All newly-reserved * resources are available for serving the instance's tables. * The instance's * new resource levels are readable via the API. The returned long-running * operation will have a name of the format `/operations/` and can be used to * track the instance modification. The metadata field type is * UpdateInstanceMetadata. The response field type is Instance, if successful. * Authorization requires `spanner.instances.update` permission on the resource * name. (instances.patch) * * @param string $name Required. A unique identifier for the instance, which * cannot be changed after the instance is created. Values are of the form * `projects//instances/a-z*[a-z0-9]`. The final segment of the name must be * between 2 and 64 characters in length. * @param UpdateInstanceRequest $postBody * @param array $optParams Optional parameters. * @return Operation */ public function patch($name, UpdateInstanceRequest $postBody, $optParams = []) { $params = ['name' => $name, 'postBody' => $postBody]; $params = array_merge($params, $optParams); return $this->call('patch', [$params], Operation::class); } /** * Sets the access control policy on an instance resource. Replaces any existing * policy. Authorization requires `spanner.instances.setIamPolicy` on resource. * (instances.setIamPolicy) * * @param string $resource REQUIRED: The Cloud Spanner resource for which the * policy is being set. The format is `projects//instances/` for instance * resources and `projects//instances//databases/` for databases resources. * @param SetIamPolicyRequest $postBody * @param array $optParams Optional parameters. * @return Policy */ public function setIamPolicy($resource, SetIamPolicyRequest $postBody, $optParams = []) { $params = ['resource' => $resource, 'postBody' => $postBody]; $params = array_merge($params, $optParams); return $this->call('setIamPolicy', [$params], Policy::class); } /** * Returns permissions that the caller has on the specified instance resource. * Attempting this RPC on a non-existent Cloud Spanner instance resource will * result in a NOT_FOUND error if the user has `spanner.instances.list` * permission on the containing Google Cloud Project. Otherwise returns an empty * set of permissions. (instances.testIamPermissions) * * @param string $resource REQUIRED: The Cloud Spanner resource for which * permissions are being tested. The format is `projects//instances/` for * instance resources and `projects//instances//databases/` for database * resources. * @param TestIamPermissionsRequest $postBody * @param array $optParams Optional parameters. * @return TestIamPermissionsResponse */ public function testIamPermissions($resource, TestIamPermissionsRequest $postBody, $optParams = []) { $params = ['resource' => $resource, 'postBody' => $postBody]; $params = array_merge($params, $optParams); return $this->call('testIamPermissions', [$params], TestIamPermissionsResponse::class); } } // Adding a class alias for backwards compatibility with the previous class name. class_alias(ProjectsInstances::class, 'Google_Service_Spanner_Resource_ProjectsInstances');