* $firebaserulesService = new Google\Service\FirebaseRules(...); * $releases = $firebaserulesService->releases; * */ class ProjectsReleases extends \Google\Service\Resource { /** * Create a `Release`. Release names should reflect the developer's deployment * practices. For example, the release name may include the environment name, * application name, application version, or any other name meaningful to the * developer. Once a `Release` refers to a `Ruleset`, the rules can be enforced * by Firebase Rules-enabled services. More than one `Release` may be 'live' * concurrently. Consider the following three `Release` names for `projects/foo` * and the `Ruleset` to which they refer. Release Name -> Ruleset Name * * projects/foo/releases/prod -> projects/foo/rulesets/uuid123 * * projects/foo/releases/prod/beta -> projects/foo/rulesets/uuid123 * * projects/foo/releases/prod/v23 -> projects/foo/rulesets/uuid456 The * relationships reflect a `Ruleset` rollout in progress. The `prod` and * `prod/beta` releases refer to the same `Ruleset`. However, `prod/v23` refers * to a new `Ruleset`. The `Ruleset` reference for a `Release` may be updated * using the UpdateRelease method. (releases.create) * * @param string $name Required. Resource name for the project which owns this * `Release`. Format: `projects/{project_id}` * @param Release $postBody * @param array $optParams Optional parameters. * @return Release */ public function create($name, Release $postBody, $optParams = []) { $params = ['name' => $name, 'postBody' => $postBody]; $params = array_merge($params, $optParams); return $this->call('create', [$params], Release::class); } /** * Delete a `Release` by resource name. (releases.delete) * * @param string $name Required. Resource name for the `Release` to delete. * Format: `projects/{project_id}/releases/{release_id}` * @param array $optParams Optional parameters. * @return FirebaserulesEmpty */ public function delete($name, $optParams = []) { $params = ['name' => $name]; $params = array_merge($params, $optParams); return $this->call('delete', [$params], FirebaserulesEmpty::class); } /** * Get a `Release` by name. (releases.get) * * @param string $name Required. Resource name of the `Release`. Format: * `projects/{project_id}/releases/{release_id}` * @param array $optParams Optional parameters. * @return Release */ public function get($name, $optParams = []) { $params = ['name' => $name]; $params = array_merge($params, $optParams); return $this->call('get', [$params], Release::class); } /** * Get the `Release` executable to use when enforcing rules. * (releases.getExecutable) * * @param string $name Required. Resource name of the `Release`. Format: * `projects/{project_id}/releases/{release_id}` * @param array $optParams Optional parameters. * * @opt_param string executableVersion The requested runtime executable version. * Defaults to FIREBASE_RULES_EXECUTABLE_V1. * @return GetReleaseExecutableResponse */ public function getExecutable($name, $optParams = []) { $params = ['name' => $name]; $params = array_merge($params, $optParams); return $this->call('getExecutable', [$params], GetReleaseExecutableResponse::class); } /** * List the `Release` values for a project. This list may optionally be filtered * by `Release` name, `Ruleset` name, `TestSuite` name, or any combination * thereof. (releases.listProjectsReleases) * * @param string $name Required. Resource name for the project. Format: * `projects/{project_id}` * @param array $optParams Optional parameters. * * @opt_param string filter `Release` filter. The list method supports filters * with restrictions on the `Release.name`, and `Release.ruleset_name`. Example * 1: A filter of 'name=prod*' might return `Release`s with names within * 'projects/foo' prefixed with 'prod': Name -> Ruleset Name: * * projects/foo/releases/prod -> projects/foo/rulesets/uuid1234 * * projects/foo/releases/prod/v1 -> projects/foo/rulesets/uuid1234 * * projects/foo/releases/prod/v2 -> projects/foo/rulesets/uuid8888 Example 2: A * filter of `name=prod* ruleset_name=uuid1234` would return only `Release` * instances for 'projects/foo' with names prefixed with 'prod' referring to the * same `Ruleset` name of 'uuid1234': Name -> Ruleset Name: * * projects/foo/releases/prod -> projects/foo/rulesets/1234 * * projects/foo/releases/prod/v1 -> projects/foo/rulesets/1234 In the examples, * the filter parameters refer to the search filters are relative to the * project. Fully qualified prefixed may also be used. * @opt_param int pageSize Page size to load. Maximum of 100. Defaults to 10. * Note: `page_size` is just a hint and the service may choose to load fewer * than `page_size` results due to the size of the output. To traverse all of * the releases, the caller should iterate until the `page_token` on the * response is empty. * @opt_param string pageToken Next page token for the next batch of `Release` * instances. * @return ListReleasesResponse */ public function listProjectsReleases($name, $optParams = []) { $params = ['name' => $name]; $params = array_merge($params, $optParams); return $this->call('list', [$params], ListReleasesResponse::class); } /** * Update a `Release` via PATCH. Only updates to `ruleset_name` will be honored. * `Release` rename is not supported. To create a `Release` use the * CreateRelease method. (releases.patch) * * @param string $name Required. Resource name for the project which owns this * `Release`. Format: `projects/{project_id}` * @param UpdateReleaseRequest $postBody * @param array $optParams Optional parameters. * @return Release */ public function patch($name, UpdateReleaseRequest $postBody, $optParams = []) { $params = ['name' => $name, 'postBody' => $postBody]; $params = array_merge($params, $optParams); return $this->call('patch', [$params], Release::class); } } // Adding a class alias for backwards compatibility with the previous class name. class_alias(ProjectsReleases::class, 'Google_Service_FirebaseRules_Resource_ProjectsReleases');