source: vendor/google/apiclient-services/src/FirebaseManagement/Resource/Projects.php

Last change on this file was e3d4e0a, checked in by Vlado 222039 <vlado.popovski@…>, 2 weeks ago

Upload project files

  • Property mode set to 100644
File size: 17.9 KB
Line 
1<?php
2/*
3 * Copyright 2014 Google Inc.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
6 * use this file except in compliance with the License. You may obtain a copy of
7 * the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14 * License for the specific language governing permissions and limitations under
15 * the License.
16 */
17
18namespace Google\Service\FirebaseManagement\Resource;
19
20use Google\Service\FirebaseManagement\AddFirebaseRequest;
21use Google\Service\FirebaseManagement\AddGoogleAnalyticsRequest;
22use Google\Service\FirebaseManagement\AdminSdkConfig;
23use Google\Service\FirebaseManagement\AnalyticsDetails;
24use Google\Service\FirebaseManagement\FirebaseEmpty;
25use Google\Service\FirebaseManagement\FirebaseProject;
26use Google\Service\FirebaseManagement\ListFirebaseProjectsResponse;
27use Google\Service\FirebaseManagement\Operation;
28use Google\Service\FirebaseManagement\RemoveAnalyticsRequest;
29use Google\Service\FirebaseManagement\SearchFirebaseAppsResponse;
30
31/**
32 * The "projects" collection of methods.
33 * Typical usage is:
34 * <code>
35 * $firebaseService = new Google\Service\FirebaseManagement(...);
36 * $projects = $firebaseService->projects;
37 * </code>
38 */
39class Projects extends \Google\Service\Resource
40{
41 /**
42 * Adds Firebase resources and enables Firebase services in the specified
43 * existing [Google Cloud `Project`](https://cloud.google.com/resource-
44 * manager/reference/rest/v1/projects). Since a FirebaseProject is actually also
45 * a Google Cloud `Project`, a `FirebaseProject` has the same underlying Google
46 * Cloud identifiers (`projectNumber` and `projectId`). This allows for easy
47 * interop with Google APIs. The result of this call is an
48 * [`Operation`](../../v1beta1/operations). Poll the `Operation` to track the
49 * provisioning process by calling GetOperation until
50 * [`done`](../../v1beta1/operations#Operation.FIELDS.done) is `true`. When
51 * `done` is `true`, the `Operation` has either succeeded or failed. If the
52 * `Operation` succeeded, its
53 * [`response`](../../v1beta1/operations#Operation.FIELDS.response) is set to a
54 * FirebaseProject; if the `Operation` failed, its
55 * [`error`](../../v1beta1/operations#Operation.FIELDS.error) is set to a
56 * google.rpc.Status. The `Operation` is automatically deleted after completion,
57 * so there is no need to call DeleteOperation. This method does not modify any
58 * billing account information on the underlying Google Cloud `Project`. To call
59 * `AddFirebase`, a project member or service account must have the following
60 * permissions (the IAM roles of Editor and Owner contain these permissions):
61 * `firebase.projects.update`, `resourcemanager.projects.get`,
62 * `serviceusage.services.enable`, and `serviceusage.services.get`.
63 * (projects.addFirebase)
64 *
65 * @param string $project The resource name of the Google Cloud `Project` in
66 * which Firebase resources will be added and Firebase services enabled, in the
67 * format: projects/ PROJECT_IDENTIFIER Refer to the `FirebaseProject`
68 * [`name`](../projects#FirebaseProject.FIELDS.name) field for details about
69 * PROJECT_IDENTIFIER values. After calling `AddFirebase`, the unique Project
70 * identifiers ( [`projectNumber`](https://cloud.google.com/resource-
71 * manager/reference/rest/v1/projects#Project.FIELDS.project_number) and
72 * [`projectId`](https://cloud.google.com/resource-
73 * manager/reference/rest/v1/projects#Project.FIELDS.project_id)) of the
74 * underlying Google Cloud `Project` are also the identifiers of the
75 * FirebaseProject.
76 * @param AddFirebaseRequest $postBody
77 * @param array $optParams Optional parameters.
78 * @return Operation
79 * @throws \Google\Service\Exception
80 */
81 public function addFirebase($project, AddFirebaseRequest $postBody, $optParams = [])
82 {
83 $params = ['project' => $project, 'postBody' => $postBody];
84 $params = array_merge($params, $optParams);
85 return $this->call('addFirebase', [$params], Operation::class);
86 }
87 /**
88 * Links the specified FirebaseProject with an existing [Google Analytics
89 * account](http://www.google.com/analytics/). Using this call, you can either:
90 * - Specify an `analyticsAccountId` to provision a new Google Analytics
91 * property within the specified account and associate the new property with the
92 * `FirebaseProject`. - Specify an existing `analyticsPropertyId` to associate
93 * the property with the `FirebaseProject`. Note that when you call
94 * `AddGoogleAnalytics`: 1. The first check determines if any existing data
95 * streams in the Google Analytics property correspond to any existing Firebase
96 * Apps in the `FirebaseProject` (based on the `packageName` or `bundleId`
97 * associated with the data stream). Then, as applicable, the data streams and
98 * apps are linked. Note that this auto-linking only applies to `AndroidApps`
99 * and `IosApps`. 2. If no corresponding data streams are found for the Firebase
100 * Apps, new data streams are provisioned in the Google Analytics property for
101 * each of the Firebase Apps. Note that a new data stream is always provisioned
102 * for a Web App even if it was previously associated with a data stream in the
103 * Analytics property. Learn more about the hierarchy and structure of Google
104 * Analytics accounts in the [Analytics
105 * documentation](https://support.google.com/analytics/answer/9303323). The
106 * result of this call is an [`Operation`](../../v1beta1/operations). Poll the
107 * `Operation` to track the provisioning process by calling GetOperation until
108 * [`done`](../../v1beta1/operations#Operation.FIELDS.done) is `true`. When
109 * `done` is `true`, the `Operation` has either succeeded or failed. If the
110 * `Operation` succeeded, its
111 * [`response`](../../v1beta1/operations#Operation.FIELDS.response) is set to an
112 * AnalyticsDetails; if the `Operation` failed, its
113 * [`error`](../../v1beta1/operations#Operation.FIELDS.error) is set to a
114 * google.rpc.Status. To call `AddGoogleAnalytics`, a project member must be an
115 * Owner for the existing `FirebaseProject` and have the [`Edit`
116 * permission](https://support.google.com/analytics/answer/2884495) for the
117 * Google Analytics account. If the `FirebaseProject` already has Google
118 * Analytics enabled, and you call `AddGoogleAnalytics` using an
119 * `analyticsPropertyId` that's different from the currently associated
120 * property, then the call will fail. Analytics may have already been enabled in
121 * the Firebase console or by specifying `timeZone` and `regionCode` in the call
122 * to [`AddFirebase`](../../v1beta1/projects/addFirebase).
123 * (projects.addGoogleAnalytics)
124 *
125 * @param string $parent The resource name of the FirebaseProject to link to an
126 * existing Google Analytics account, in the format: projects/PROJECT_IDENTIFIER
127 * Refer to the `FirebaseProject`
128 * [`name`](../projects#FirebaseProject.FIELDS.name) field for details about
129 * PROJECT_IDENTIFIER values.
130 * @param AddGoogleAnalyticsRequest $postBody
131 * @param array $optParams Optional parameters.
132 * @return Operation
133 * @throws \Google\Service\Exception
134 */
135 public function addGoogleAnalytics($parent, AddGoogleAnalyticsRequest $postBody, $optParams = [])
136 {
137 $params = ['parent' => $parent, 'postBody' => $postBody];
138 $params = array_merge($params, $optParams);
139 return $this->call('addGoogleAnalytics', [$params], Operation::class);
140 }
141 /**
142 * Gets the specified FirebaseProject. (projects.get)
143 *
144 * @param string $name The resource name of the FirebaseProject, in the format:
145 * projects/ PROJECT_IDENTIFIER Refer to the `FirebaseProject`
146 * [`name`](../projects#FirebaseProject.FIELDS.name) field for details about
147 * PROJECT_IDENTIFIER values.
148 * @param array $optParams Optional parameters.
149 * @return FirebaseProject
150 * @throws \Google\Service\Exception
151 */
152 public function get($name, $optParams = [])
153 {
154 $params = ['name' => $name];
155 $params = array_merge($params, $optParams);
156 return $this->call('get', [$params], FirebaseProject::class);
157 }
158 /**
159 * Gets the configuration artifact associated with the specified
160 * FirebaseProject, which can be used by servers to simplify initialization.
161 * Typically, this configuration is used with the Firebase Admin SDK [initialize
162 * App](https://firebase.google.com/docs/admin/setup#initialize_the_sdk)
163 * command. (projects.getAdminSdkConfig)
164 *
165 * @param string $name The resource name of the FirebaseProject, in the format:
166 * projects/ PROJECT_IDENTIFIER/adminSdkConfig Refer to the `FirebaseProject`
167 * [`name`](../projects#FirebaseProject.FIELDS.name) field for details about
168 * PROJECT_IDENTIFIER values.
169 * @param array $optParams Optional parameters.
170 * @return AdminSdkConfig
171 * @throws \Google\Service\Exception
172 */
173 public function getAdminSdkConfig($name, $optParams = [])
174 {
175 $params = ['name' => $name];
176 $params = array_merge($params, $optParams);
177 return $this->call('getAdminSdkConfig', [$params], AdminSdkConfig::class);
178 }
179 /**
180 * Gets the Google Analytics details currently associated with the specified
181 * FirebaseProject. If the `FirebaseProject` is not yet linked to Google
182 * Analytics, then the response to `GetAnalyticsDetails` is `NOT_FOUND`.
183 * (projects.getAnalyticsDetails)
184 *
185 * @param string $name The resource name of the FirebaseProject, in the format:
186 * projects/ PROJECT_IDENTIFIER/analyticsDetails Refer to the `FirebaseProject`
187 * [`name`](../projects#FirebaseProject.FIELDS.name) field for details about
188 * PROJECT_IDENTIFIER values.
189 * @param array $optParams Optional parameters.
190 * @return AnalyticsDetails
191 * @throws \Google\Service\Exception
192 */
193 public function getAnalyticsDetails($name, $optParams = [])
194 {
195 $params = ['name' => $name];
196 $params = array_merge($params, $optParams);
197 return $this->call('getAnalyticsDetails', [$params], AnalyticsDetails::class);
198 }
199 /**
200 * Lists each FirebaseProject accessible to the caller. The elements are
201 * returned in no particular order, but they will be a consistent view of the
202 * Projects when additional requests are made with a `pageToken`. This method is
203 * eventually consistent with Project mutations, which means newly provisioned
204 * Projects and recent modifications to existing Projects might not be reflected
205 * in the set of Projects. The list will include only ACTIVE Projects. Use
206 * GetFirebaseProject for consistent reads as well as for additional Project
207 * details. (projects.listProjects)
208 *
209 * @param array $optParams Optional parameters.
210 *
211 * @opt_param int pageSize The maximum number of Projects to return in the
212 * response. The server may return fewer than this at its discretion. If no
213 * value is specified (or too large a value is specified), the server will
214 * impose its own limit. This value cannot be negative.
215 * @opt_param string pageToken Token returned from a previous call to
216 * `ListFirebaseProjects` indicating where in the set of Projects to resume
217 * listing.
218 * @opt_param bool showDeleted Optional. Controls whether Projects in the
219 * DELETED state should be returned in the response. If not specified, only
220 * `ACTIVE` Projects will be returned.
221 * @return ListFirebaseProjectsResponse
222 * @throws \Google\Service\Exception
223 */
224 public function listProjects($optParams = [])
225 {
226 $params = [];
227 $params = array_merge($params, $optParams);
228 return $this->call('list', [$params], ListFirebaseProjectsResponse::class);
229 }
230 /**
231 * Updates the attributes of the specified FirebaseProject. All [query
232 * parameters](#query-parameters) are required. (projects.patch)
233 *
234 * @param string $name The resource name of the Project, in the format:
235 * projects/PROJECT_IDENTIFIER PROJECT_IDENTIFIER: the Project's
236 * [`ProjectNumber`](../projects#FirebaseProject.FIELDS.project_number)
237 * ***(recommended)*** or its
238 * [`ProjectId`](../projects#FirebaseProject.FIELDS.project_id). Learn more
239 * about using project identifiers in Google's [AIP 2510
240 * standard](https://google.aip.dev/cloud/2510). Note that the value for
241 * PROJECT_IDENTIFIER in any response body will be the `ProjectId`.
242 * @param FirebaseProject $postBody
243 * @param array $optParams Optional parameters.
244 *
245 * @opt_param string updateMask Specifies which fields of the FirebaseProject to
246 * update. Note that the following fields are immutable: `name`, `project_id`,
247 * and `project_number`. To update `state`, use any of the following Google
248 * Cloud endpoints: [`projects.delete`](https://cloud.google.com/resource-
249 * manager/reference/rest/v1/projects/delete) or
250 * [`projects.undelete`](https://cloud.google.com/resource-
251 * manager/reference/rest/v1/projects/undelete)
252 * @return FirebaseProject
253 * @throws \Google\Service\Exception
254 */
255 public function patch($name, FirebaseProject $postBody, $optParams = [])
256 {
257 $params = ['name' => $name, 'postBody' => $postBody];
258 $params = array_merge($params, $optParams);
259 return $this->call('patch', [$params], FirebaseProject::class);
260 }
261 /**
262 * Unlinks the specified FirebaseProject from its Google Analytics account. This
263 * call removes the association of the specified `FirebaseProject` with its
264 * current Google Analytics property. However, this call does not delete the
265 * Google Analytics resources, such as the Google Analytics property or any data
266 * streams. These resources may be re-associated later to the `FirebaseProject`
267 * by calling [`AddGoogleAnalytics`](../../v1beta1/projects/addGoogleAnalytics)
268 * and specifying the same `analyticsPropertyId`. For Android Apps and iOS Apps,
269 * this call re-links data streams with their corresponding apps. However, for
270 * Web Apps, this call provisions a *new* data stream for each Web App. To call
271 * `RemoveAnalytics`, a project member must be an Owner for the
272 * `FirebaseProject`. (projects.removeAnalytics)
273 *
274 * @param string $parent The resource name of the FirebaseProject to unlink from
275 * its Google Analytics account, in the format: projects/PROJECT_IDENTIFIER
276 * Refer to the `FirebaseProject`
277 * [`name`](../projects#FirebaseProject.FIELDS.name) field for details about
278 * PROJECT_IDENTIFIER values.
279 * @param RemoveAnalyticsRequest $postBody
280 * @param array $optParams Optional parameters.
281 * @return FirebaseEmpty
282 * @throws \Google\Service\Exception
283 */
284 public function removeAnalytics($parent, RemoveAnalyticsRequest $postBody, $optParams = [])
285 {
286 $params = ['parent' => $parent, 'postBody' => $postBody];
287 $params = array_merge($params, $optParams);
288 return $this->call('removeAnalytics', [$params], FirebaseEmpty::class);
289 }
290 /**
291 * Lists all available Apps for the specified FirebaseProject. This is a
292 * convenience method. Typically, interaction with an App should be done using
293 * the platform-specific service, but some tool use-cases require a summary of
294 * all known Apps (such as for App selector interfaces). (projects.searchApps)
295 *
296 * @param string $parent The parent FirebaseProject for which to list Apps, in
297 * the format: projects/ PROJECT_IDENTIFIER Refer to the `FirebaseProject`
298 * [`name`](../projects#FirebaseProject.FIELDS.name) field for details about
299 * PROJECT_IDENTIFIER values.
300 * @param array $optParams Optional parameters.
301 *
302 * @opt_param string filter A query string compatible with Google's [AIP-160
303 * standard](https://google.aip.dev/160). Use any of the following fields in a
304 * query: * [`app_id`](../projects/searchApps#FirebaseAppInfo.FIELDS.app_id) *
305 * [`namespace`](../projects/searchApps#FirebaseAppInfo.FIELDS.namespace) *
306 * [`platform`](../projects/searchApps#FirebaseAppInfo.FIELDS.platform) This
307 * query also supports the following "virtual" fields. These are fields which
308 * are not actually part of the returned resource object, but they can be
309 * queried as if they are pre-populated with specific values. * `sha1_hash` or
310 * `sha1_hashes`: This field is considered to be a _repeated_ `string` field,
311 * populated with the list of all SHA-1 certificate fingerprints registered with
312 * the AndroidApp. This list is empty if the App is not an `AndroidApp`. *
313 * `sha256_hash` or `sha256_hashes`: This field is considered to be a _repeated_
314 * `string` field, populated with the list of all SHA-256 certificate
315 * fingerprints registered with the AndroidApp. This list is empty if the App is
316 * not an `AndroidApp`. * `app_store_id`: This field is considered to be a
317 * _singular_ `string` field, populated with the Apple App Store ID registered
318 * with the IosApp. This field is empty if the App is not an `IosApp`. *
319 * `team_id`: This field is considered to be a _singular_ `string` field,
320 * populated with the Apple team ID registered with the IosApp. This field is
321 * empty if the App is not an `IosApp`.
322 * @opt_param int pageSize The maximum number of Apps to return in the response.
323 * The server may return fewer than this value at its discretion. If no value is
324 * specified (or too large a value is specified), then the server will impose
325 * its own limit. This value cannot be negative.
326 * @opt_param string pageToken Token returned from a previous call to
327 * `SearchFirebaseApps` indicating where in the set of Apps to resume listing.
328 * @opt_param bool showDeleted Controls whether Apps in the DELETED state should
329 * be returned. If not specified, only `ACTIVE` Apps will be returned.
330 * @return SearchFirebaseAppsResponse
331 * @throws \Google\Service\Exception
332 */
333 public function searchApps($parent, $optParams = [])
334 {
335 $params = ['parent' => $parent];
336 $params = array_merge($params, $optParams);
337 return $this->call('searchApps', [$params], SearchFirebaseAppsResponse::class);
338 }
339}
340
341// Adding a class alias for backwards compatibility with the previous class name.
342class_alias(Projects::class, 'Google_Service_FirebaseManagement_Resource_Projects');
Note: See TracBrowser for help on using the repository browser.