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\Script\Resource; 19 20use Google\Service\Script\Content; 21use Google\Service\Script\CreateProjectRequest; 22use Google\Service\Script\Metrics; 23use Google\Service\Script\Project; 24 25/** 26 * The "projects" collection of methods. 27 * Typical usage is: 28 * <code> 29 * $scriptService = new Google\Service\Script(...); 30 * $projects = $scriptService->projects; 31 * </code> 32 */ 33class Projects extends \Google\Service\Resource 34{ 35 /** 36 * Creates a new, empty script project with no script files and a base manifest 37 * file. (projects.create) 38 * 39 * @param CreateProjectRequest $postBody 40 * @param array $optParams Optional parameters. 41 * @return Project 42 */ 43 public function create(CreateProjectRequest $postBody, $optParams = []) 44 { 45 $params = ['postBody' => $postBody]; 46 $params = array_merge($params, $optParams); 47 return $this->call('create', [$params], Project::class); 48 } 49 /** 50 * Gets a script project's metadata. (projects.get) 51 * 52 * @param string $scriptId The script project's Drive ID. 53 * @param array $optParams Optional parameters. 54 * @return Project 55 */ 56 public function get($scriptId, $optParams = []) 57 { 58 $params = ['scriptId' => $scriptId]; 59 $params = array_merge($params, $optParams); 60 return $this->call('get', [$params], Project::class); 61 } 62 /** 63 * Gets the content of the script project, including the code source and 64 * metadata for each script file. (projects.getContent) 65 * 66 * @param string $scriptId The script project's Drive ID. 67 * @param array $optParams Optional parameters. 68 * 69 * @opt_param int versionNumber The version number of the project to retrieve. 70 * If not provided, the project's HEAD version is returned. 71 * @return Content 72 */ 73 public function getContent($scriptId, $optParams = []) 74 { 75 $params = ['scriptId' => $scriptId]; 76 $params = array_merge($params, $optParams); 77 return $this->call('getContent', [$params], Content::class); 78 } 79 /** 80 * Get metrics data for scripts, such as number of executions and active users. 81 * (projects.getMetrics) 82 * 83 * @param string $scriptId Required field indicating the script to get metrics 84 * for. 85 * @param array $optParams Optional parameters. 86 * 87 * @opt_param string metricsFilter.deploymentId Optional field indicating a 88 * specific deployment to retrieve metrics from. 89 * @opt_param string metricsGranularity Required field indicating what 90 * granularity of metrics are returned. 91 * @return Metrics 92 */ 93 public function getMetrics($scriptId, $optParams = []) 94 { 95 $params = ['scriptId' => $scriptId]; 96 $params = array_merge($params, $optParams); 97 return $this->call('getMetrics', [$params], Metrics::class); 98 } 99 /** 100 * Updates the content of the specified script project. This content is stored 101 * as the HEAD version, and is used when the script is executed as a trigger, in 102 * the script editor, in add-on preview mode, or as a web app or Apps Script API 103 * in development mode. This clears all the existing files in the project. 104 * (projects.updateContent) 105 * 106 * @param string $scriptId The script project's Drive ID. 107 * @param Content $postBody 108 * @param array $optParams Optional parameters. 109 * @return Content 110 */ 111 public function updateContent($scriptId, Content $postBody, $optParams = []) 112 { 113 $params = ['scriptId' => $scriptId, 'postBody' => $postBody]; 114 $params = array_merge($params, $optParams); 115 return $this->call('updateContent', [$params], Content::class); 116 } 117} 118 119// Adding a class alias for backwards compatibility with the previous class name. 120class_alias(Projects::class, 'Google_Service_Script_Resource_Projects'); 121