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 
18 namespace Google\Service\RecommendationsAI\Resource;
19 
20 use Google\Service\RecommendationsAI\GoogleApiHttpBody;
21 use Google\Service\RecommendationsAI\GoogleCloudRecommendationengineV1beta1ImportUserEventsRequest;
22 use Google\Service\RecommendationsAI\GoogleCloudRecommendationengineV1beta1ListUserEventsResponse;
23 use Google\Service\RecommendationsAI\GoogleCloudRecommendationengineV1beta1PurgeUserEventsRequest;
24 use Google\Service\RecommendationsAI\GoogleCloudRecommendationengineV1beta1RejoinUserEventsRequest;
25 use Google\Service\RecommendationsAI\GoogleCloudRecommendationengineV1beta1UserEvent;
26 use Google\Service\RecommendationsAI\GoogleLongrunningOperation;
27 
28 /**
29  * The "userEvents" collection of methods.
30  * Typical usage is:
31  *  <code>
32  *   $recommendationengineService = new Google\Service\RecommendationsAI(...);
33  *   $userEvents = $recommendationengineService->userEvents;
34  *  </code>
35  */
36 class ProjectsLocationsCatalogsEventStoresUserEvents extends \Google\Service\Resource
37 {
38   /**
39    * Writes a single user event from the browser. This uses a GET request to due
40    * to browser restriction of POST-ing to a 3rd party domain. This method is used
41    * only by the Recommendations AI JavaScript pixel. Users should not call this
42    * method directly. (userEvents.collect)
43    *
44    * @param string $parent Required. The parent eventStore name, such as `projects
45    * /1234/locations/global/catalogs/default_catalog/eventStores/default_event_sto
46    * re`.
47    * @param array $optParams Optional parameters.
48    *
49    * @opt_param string ets Optional. The event timestamp in milliseconds. This
50    * prevents browser caching of otherwise identical get requests. The name is
51    * abbreviated to reduce the payload bytes.
52    * @opt_param string uri Optional. The url including cgi-parameters but
53    * excluding the hash fragment. The URL must be truncated to 1.5K bytes to
54    * conservatively be under the 2K bytes. This is often more useful than the
55    * referer url, because many browsers only send the domain for 3rd party
56    * requests.
57    * @opt_param string userEvent Required. URL encoded UserEvent proto.
58    * @return GoogleApiHttpBody
59    */
60   public function collect($parent, $optParams = [])
61   {
62     $params = ['parent' => $parent];
63     $params = array_merge($params, $optParams);
64     return $this->call('collect', [$params], GoogleApiHttpBody::class);
65   }
66   /**
67    * Bulk import of User events. Request processing might be synchronous. Events
68    * that already exist are skipped. Use this method for backfilling historical
69    * user events. Operation.response is of type ImportResponse. Note that it is
70    * possible for a subset of the items to be successfully inserted.
71    * Operation.metadata is of type ImportMetadata. (userEvents.import)
72    *
73    * @param string $parent Required. `projects/1234/locations/global/catalogs/defa
74    * ult_catalog/eventStores/default_event_store`
75    * @param GoogleCloudRecommendationengineV1beta1ImportUserEventsRequest $postBody
76    * @param array $optParams Optional parameters.
77    * @return GoogleLongrunningOperation
78    */
79   public function import($parent, GoogleCloudRecommendationengineV1beta1ImportUserEventsRequest $postBody, $optParams = [])
80   {
81     $params = ['parent' => $parent, 'postBody' => $postBody];
82     $params = array_merge($params, $optParams);
83     return $this->call('import', [$params], GoogleLongrunningOperation::class);
84   }
85   /**
86    * Gets a list of user events within a time range, with potential filtering. The
87    * method does not list unjoined user events. Unjoined user event definition:
88    * when a user event is ingested from Recommendations AI User Event APIs, the
89    * catalog item included in the user event is connected with the current
90    * catalog. If a catalog item of the ingested event is not in the current
91    * catalog, it could lead to degraded model quality. This is called an unjoined
92    * event. (userEvents.listProjectsLocationsCatalogsEventStoresUserEvents)
93    *
94    * @param string $parent Required. The parent eventStore resource name, such as
95    * `projects/locations/catalogs/default_catalog/eventStores/default_event_store`
96    * .
97    * @param array $optParams Optional parameters.
98    *
99    * @opt_param string filter Optional. Filtering expression to specify
100    * restrictions over returned events. This is a sequence of terms, where each
101    * term applies some kind of a restriction to the returned user events. Use this
102    * expression to restrict results to a specific time range, or filter events by
103    * eventType. eg: eventTime > "2012-04-23T18:25:43.511Z"
104    * eventsMissingCatalogItems eventTime<"2012-04-23T18:25:43.511Z"
105    * eventType=search We expect only 3 types of fields: * eventTime: this can be
106    * specified a maximum of 2 times, once with a less than operator and once with
107    * a greater than operator. The eventTime restrict should result in one
108    * contiguous valid eventTime range. * eventType: only 1 eventType restriction
109    * can be specified. * eventsMissingCatalogItems: specififying this will
110    * restrict results to events for which catalog items were not found in the
111    * catalog. The default behavior is to return only those events for which
112    * catalog items were found. Some examples of valid filters expressions: *
113    * Example 1: eventTime > "2012-04-23T18:25:43.511Z" eventTime <
114    * "2012-04-23T18:30:43.511Z" * Example 2: eventTime >
115    * "2012-04-23T18:25:43.511Z" eventType = detail-page-view * Example 3:
116    * eventsMissingCatalogItems eventType = search eventTime <
117    * "2018-04-23T18:30:43.511Z" * Example 4: eventTime >
118    * "2012-04-23T18:25:43.511Z" * Example 5: eventType = search * Example 6:
119    * eventsMissingCatalogItems
120    * @opt_param int pageSize Optional. Maximum number of results to return per
121    * page. If zero, the service will choose a reasonable default.
122    * @opt_param string pageToken Optional. The previous
123    * ListUserEventsResponse.next_page_token.
124    * @return GoogleCloudRecommendationengineV1beta1ListUserEventsResponse
125    */
126   public function listProjectsLocationsCatalogsEventStoresUserEvents($parent, $optParams = [])
127   {
128     $params = ['parent' => $parent];
129     $params = array_merge($params, $optParams);
130     return $this->call('list', [$params], GoogleCloudRecommendationengineV1beta1ListUserEventsResponse::class);
131   }
132   /**
133    * Deletes permanently all user events specified by the filter provided.
134    * Depending on the number of events specified by the filter, this operation
135    * could take hours or days to complete. To test a filter, use the list command
136    * first. (userEvents.purge)
137    *
138    * @param string $parent Required. The resource name of the event_store under
139    * which the events are created. The format is `projects/${projectId}/locations/
140    * global/catalogs/${catalogId}/eventStores/${eventStoreId}`
141    * @param GoogleCloudRecommendationengineV1beta1PurgeUserEventsRequest $postBody
142    * @param array $optParams Optional parameters.
143    * @return GoogleLongrunningOperation
144    */
145   public function purge($parent, GoogleCloudRecommendationengineV1beta1PurgeUserEventsRequest $postBody, $optParams = [])
146   {
147     $params = ['parent' => $parent, 'postBody' => $postBody];
148     $params = array_merge($params, $optParams);
149     return $this->call('purge', [$params], GoogleLongrunningOperation::class);
150   }
151   /**
152    * Triggers a user event rejoin operation with latest catalog data. Events will
153    * not be annotated with detailed catalog information if catalog item is missing
154    * at the time the user event is ingested, and these events are stored as
155    * unjoined events with a limited usage on training and serving. This API can be
156    * used to trigger a 'join' operation on specified events with latest version of
157    * catalog items. It can also be used to correct events joined with wrong
158    * catalog items. (userEvents.rejoin)
159    *
160    * @param string $parent Required. Full resource name of user event, such as `pr
161    * ojects/locations/catalogs/default_catalog/eventStores/default_event_store`.
162    * @param GoogleCloudRecommendationengineV1beta1RejoinUserEventsRequest $postBody
163    * @param array $optParams Optional parameters.
164    * @return GoogleLongrunningOperation
165    */
166   public function rejoin($parent, GoogleCloudRecommendationengineV1beta1RejoinUserEventsRequest $postBody, $optParams = [])
167   {
168     $params = ['parent' => $parent, 'postBody' => $postBody];
169     $params = array_merge($params, $optParams);
170     return $this->call('rejoin', [$params], GoogleLongrunningOperation::class);
171   }
172   /**
173    * Writes a single user event. (userEvents.write)
174    *
175    * @param string $parent Required. The parent eventStore resource name, such as
176    * "projects/1234/locations/global/catalogs/default_catalog/eventStores/default_
177    * event_store".
178    * @param GoogleCloudRecommendationengineV1beta1UserEvent $postBody
179    * @param array $optParams Optional parameters.
180    * @return GoogleCloudRecommendationengineV1beta1UserEvent
181    */
182   public function write($parent, GoogleCloudRecommendationengineV1beta1UserEvent $postBody, $optParams = [])
183   {
184     $params = ['parent' => $parent, 'postBody' => $postBody];
185     $params = array_merge($params, $optParams);
186     return $this->call('write', [$params], GoogleCloudRecommendationengineV1beta1UserEvent::class);
187   }
188 }
189 
190 // Adding a class alias for backwards compatibility with the previous class name.
191 class_alias(ProjectsLocationsCatalogsEventStoresUserEvents::class, 'Google_Service_RecommendationsAI_Resource_ProjectsLocationsCatalogsEventStoresUserEvents');
192