Index: generated/googleapis/lib/sourcerepo/v1.dart |
diff --git a/generated/googleapis/lib/sourcerepo/v1.dart b/generated/googleapis/lib/sourcerepo/v1.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..31d6658f1658af2e444d80b51a875e7e986f1202 |
--- /dev/null |
+++ b/generated/googleapis/lib/sourcerepo/v1.dart |
@@ -0,0 +1,1267 @@ |
+// This is a generated file (see the discoveryapis_generator project). |
+ |
+library googleapis.sourcerepo.v1; |
+ |
+import 'dart:core' as core; |
+import 'dart:async' as async; |
+import 'dart:convert' as convert; |
+ |
+import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons; |
+import 'package:http/http.dart' as http; |
+ |
+export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' show |
+ ApiRequestError, DetailedApiRequestError; |
+ |
+const core.String USER_AGENT = 'dart-api-client sourcerepo/v1'; |
+ |
+/** Access source code repositories hosted by Google. */ |
+class SourcerepoApi { |
+ /** View and manage your data across Google Cloud Platform services */ |
+ static const CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"; |
+ |
+ |
+ final commons.ApiRequester _requester; |
+ |
+ ProjectsResourceApi get projects => new ProjectsResourceApi(_requester); |
+ |
+ SourcerepoApi(http.Client client, {core.String rootUrl: "https://sourcerepo.googleapis.com/", core.String servicePath: ""}) : |
+ _requester = new commons.ApiRequester(client, rootUrl, servicePath, USER_AGENT); |
+} |
+ |
+ |
+class ProjectsResourceApi { |
+ final commons.ApiRequester _requester; |
+ |
+ ProjectsReposResourceApi get repos => new ProjectsReposResourceApi(_requester); |
+ |
+ ProjectsResourceApi(commons.ApiRequester client) : |
+ _requester = client; |
+} |
+ |
+ |
+class ProjectsReposResourceApi { |
+ final commons.ApiRequester _requester; |
+ |
+ ProjectsReposResourceApi(commons.ApiRequester client) : |
+ _requester = client; |
+ |
+ /** |
+ * Creates a repo in the given project with the given name.. |
+ * |
+ * If the named repository already exists, `CreateRepo` returns |
+ * `ALREADY_EXISTS`. |
+ * |
+ * [request] - The metadata request object. |
+ * |
+ * Request parameters: |
+ * |
+ * [parent] - The project in which to create the repo. Values are of the form |
+ * `projects/<project>`. |
+ * Value must have pattern "^projects/[^/]+$". |
+ * |
+ * Completes with a [Repo]. |
+ * |
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
+ * error. |
+ * |
+ * If the used [http.Client] completes with an error when making a REST call, |
+ * this method will complete with the same error. |
+ */ |
+ async.Future<Repo> create(Repo request, core.String parent) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = commons.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (request != null) { |
+ _body = convert.JSON.encode((request).toJson()); |
+ } |
+ if (parent == null) { |
+ throw new core.ArgumentError("Parameter parent is required."); |
+ } |
+ |
+ _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/repos'; |
+ |
+ var _response = _requester.request(_url, |
+ "POST", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new Repo.fromJson(data)); |
+ } |
+ |
+ /** |
+ * Deletes a repo. |
+ * |
+ * Request parameters: |
+ * |
+ * [name] - The name of the repo to delete. Values are of the form |
+ * `projects/<project>/repos/<repo>`. |
+ * Value must have pattern "^projects/[^/]+/repos/.+$". |
+ * |
+ * Completes with a [Empty]. |
+ * |
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
+ * error. |
+ * |
+ * If the used [http.Client] completes with an error when making a REST call, |
+ * this method will complete with the same error. |
+ */ |
+ async.Future<Empty> delete(core.String name) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = commons.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (name == null) { |
+ throw new core.ArgumentError("Parameter name is required."); |
+ } |
+ |
+ _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
+ |
+ var _response = _requester.request(_url, |
+ "DELETE", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new Empty.fromJson(data)); |
+ } |
+ |
+ /** |
+ * Returns information about a repo. |
+ * |
+ * Request parameters: |
+ * |
+ * [name] - The name of the requested repository. Values are of the form |
+ * `projects/<project>/repos/<repo>`. |
+ * Value must have pattern "^projects/[^/]+/repos/.+$". |
+ * |
+ * Completes with a [Repo]. |
+ * |
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
+ * error. |
+ * |
+ * If the used [http.Client] completes with an error when making a REST call, |
+ * this method will complete with the same error. |
+ */ |
+ async.Future<Repo> get(core.String name) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = commons.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (name == null) { |
+ throw new core.ArgumentError("Parameter name is required."); |
+ } |
+ |
+ _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
+ |
+ var _response = _requester.request(_url, |
+ "GET", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new Repo.fromJson(data)); |
+ } |
+ |
+ /** |
+ * Gets the access control policy for a resource. |
+ * Returns an empty policy if the resource exists and does not have a policy |
+ * set. |
+ * |
+ * Request parameters: |
+ * |
+ * [resource] - REQUIRED: The resource for which the policy is being |
+ * requested. |
+ * See the operation documentation for the appropriate value for this field. |
+ * Value must have pattern "^projects/[^/]+/repos/.+$". |
+ * |
+ * Completes with a [Policy]. |
+ * |
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
+ * error. |
+ * |
+ * If the used [http.Client] completes with an error when making a REST call, |
+ * this method will complete with the same error. |
+ */ |
+ async.Future<Policy> getIamPolicy(core.String resource) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = commons.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (resource == null) { |
+ throw new core.ArgumentError("Parameter resource is required."); |
+ } |
+ |
+ _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':getIamPolicy'; |
+ |
+ var _response = _requester.request(_url, |
+ "GET", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new Policy.fromJson(data)); |
+ } |
+ |
+ /** |
+ * Returns all repos belonging to a project. |
+ * |
+ * Request parameters: |
+ * |
+ * [name] - The project ID whose repos should be listed. Values are of the |
+ * form |
+ * `projects/<project>`. |
+ * Value must have pattern "^projects/[^/]+$". |
+ * |
+ * Completes with a [ListReposResponse]. |
+ * |
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
+ * error. |
+ * |
+ * If the used [http.Client] completes with an error when making a REST call, |
+ * this method will complete with the same error. |
+ */ |
+ async.Future<ListReposResponse> list(core.String name) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = commons.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (name == null) { |
+ throw new core.ArgumentError("Parameter name is required."); |
+ } |
+ |
+ _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + '/repos'; |
+ |
+ var _response = _requester.request(_url, |
+ "GET", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new ListReposResponse.fromJson(data)); |
+ } |
+ |
+ /** |
+ * Sets the access control policy on the specified resource. Replaces any |
+ * existing policy. |
+ * |
+ * [request] - The metadata request object. |
+ * |
+ * Request parameters: |
+ * |
+ * [resource] - REQUIRED: The resource for which the policy is being |
+ * specified. |
+ * See the operation documentation for the appropriate value for this field. |
+ * Value must have pattern "^projects/[^/]+/repos/.+$". |
+ * |
+ * Completes with a [Policy]. |
+ * |
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
+ * error. |
+ * |
+ * If the used [http.Client] completes with an error when making a REST call, |
+ * this method will complete with the same error. |
+ */ |
+ async.Future<Policy> setIamPolicy(SetIamPolicyRequest request, core.String resource) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = commons.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (request != null) { |
+ _body = convert.JSON.encode((request).toJson()); |
+ } |
+ if (resource == null) { |
+ throw new core.ArgumentError("Parameter resource is required."); |
+ } |
+ |
+ _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':setIamPolicy'; |
+ |
+ var _response = _requester.request(_url, |
+ "POST", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new Policy.fromJson(data)); |
+ } |
+ |
+ /** |
+ * Returns permissions that a caller has on the specified resource. |
+ * If the resource does not exist, this will return an empty set of |
+ * permissions, not a NOT_FOUND error. |
+ * |
+ * [request] - The metadata request object. |
+ * |
+ * Request parameters: |
+ * |
+ * [resource] - REQUIRED: The resource for which the policy detail is being |
+ * requested. |
+ * See the operation documentation for the appropriate value for this field. |
+ * Value must have pattern "^projects/[^/]+/repos/.+$". |
+ * |
+ * Completes with a [TestIamPermissionsResponse]. |
+ * |
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
+ * error. |
+ * |
+ * If the used [http.Client] completes with an error when making a REST call, |
+ * this method will complete with the same error. |
+ */ |
+ async.Future<TestIamPermissionsResponse> testIamPermissions(TestIamPermissionsRequest request, core.String resource) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = commons.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (request != null) { |
+ _body = convert.JSON.encode((request).toJson()); |
+ } |
+ if (resource == null) { |
+ throw new core.ArgumentError("Parameter resource is required."); |
+ } |
+ |
+ _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':testIamPermissions'; |
+ |
+ var _response = _requester.request(_url, |
+ "POST", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new TestIamPermissionsResponse.fromJson(data)); |
+ } |
+ |
+} |
+ |
+ |
+ |
+/** |
+ * Specifies the audit configuration for a service. |
+ * It consists of which permission types are logged, and what identities, if |
+ * any, are exempted from logging. |
+ * An AuditConifg must have one or more AuditLogConfigs. |
+ * |
+ * If there are AuditConfigs for both `allServices` and a specific service, |
+ * the union of the two AuditConfigs is used for that service: the log_types |
+ * specified in each AuditConfig are enabled, and the exempted_members in each |
+ * AuditConfig are exempted. |
+ * Example Policy with multiple AuditConfigs: |
+ * { |
+ * "audit_configs": [ |
+ * { |
+ * "service": "allServices" |
+ * "audit_log_configs": [ |
+ * { |
+ * "log_type": "DATA_READ", |
+ * "exempted_members": [ |
+ * "user:foo@gmail.com" |
+ * ] |
+ * }, |
+ * { |
+ * "log_type": "DATA_WRITE", |
+ * }, |
+ * { |
+ * "log_type": "ADMIN_READ", |
+ * } |
+ * ] |
+ * }, |
+ * { |
+ * "service": "fooservice@googleapis.com" |
+ * "audit_log_configs": [ |
+ * { |
+ * "log_type": "DATA_READ", |
+ * }, |
+ * { |
+ * "log_type": "DATA_WRITE", |
+ * "exempted_members": [ |
+ * "user:bar@gmail.com" |
+ * ] |
+ * } |
+ * ] |
+ * } |
+ * ] |
+ * } |
+ * For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ |
+ * logging. It also exempts foo@gmail.com from DATA_READ logging, and |
+ * bar@gmail.com from DATA_WRITE logging. |
+ */ |
+class AuditConfig { |
+ /** |
+ * The configuration for logging of each type of permission. |
+ * Next ID: 4 |
+ */ |
+ core.List<AuditLogConfig> auditLogConfigs; |
+ core.List<core.String> exemptedMembers; |
+ /** |
+ * Specifies a service that will be enabled for audit logging. |
+ * For example, `resourcemanager`, `storage`, `compute`. |
+ * `allServices` is a special value that covers all services. |
+ */ |
+ core.String service; |
+ |
+ AuditConfig(); |
+ |
+ AuditConfig.fromJson(core.Map _json) { |
+ if (_json.containsKey("auditLogConfigs")) { |
+ auditLogConfigs = _json["auditLogConfigs"].map((value) => new AuditLogConfig.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("exemptedMembers")) { |
+ exemptedMembers = _json["exemptedMembers"]; |
+ } |
+ if (_json.containsKey("service")) { |
+ service = _json["service"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (auditLogConfigs != null) { |
+ _json["auditLogConfigs"] = auditLogConfigs.map((value) => (value).toJson()).toList(); |
+ } |
+ if (exemptedMembers != null) { |
+ _json["exemptedMembers"] = exemptedMembers; |
+ } |
+ if (service != null) { |
+ _json["service"] = service; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** |
+ * Provides the configuration for logging a type of permissions. |
+ * Example: |
+ * |
+ * { |
+ * "audit_log_configs": [ |
+ * { |
+ * "log_type": "DATA_READ", |
+ * "exempted_members": [ |
+ * "user:foo@gmail.com" |
+ * ] |
+ * }, |
+ * { |
+ * "log_type": "DATA_WRITE", |
+ * } |
+ * ] |
+ * } |
+ * |
+ * This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting |
+ * foo@gmail.com from DATA_READ logging. |
+ */ |
+class AuditLogConfig { |
+ /** |
+ * Specifies the identities that do not cause logging for this type of |
+ * permission. |
+ * Follows the same format of Binding.members. |
+ */ |
+ core.List<core.String> exemptedMembers; |
+ /** |
+ * The log type that this config enables. |
+ * Possible string values are: |
+ * - "LOG_TYPE_UNSPECIFIED" : Default case. Should never be this. |
+ * - "ADMIN_READ" : Admin reads. Example: CloudIAM getIamPolicy |
+ * - "DATA_WRITE" : Data writes. Example: CloudSQL Users create |
+ * - "DATA_READ" : Data reads. Example: CloudSQL Users list |
+ */ |
+ core.String logType; |
+ |
+ AuditLogConfig(); |
+ |
+ AuditLogConfig.fromJson(core.Map _json) { |
+ if (_json.containsKey("exemptedMembers")) { |
+ exemptedMembers = _json["exemptedMembers"]; |
+ } |
+ if (_json.containsKey("logType")) { |
+ logType = _json["logType"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (exemptedMembers != null) { |
+ _json["exemptedMembers"] = exemptedMembers; |
+ } |
+ if (logType != null) { |
+ _json["logType"] = logType; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** Associates `members` with a `role`. */ |
+class Binding { |
+ /** |
+ * Specifies the identities requesting access for a Cloud Platform resource. |
+ * `members` can have the following values: |
+ * |
+ * * `allUsers`: A special identifier that represents anyone who is |
+ * on the internet; with or without a Google account. |
+ * |
+ * * `allAuthenticatedUsers`: A special identifier that represents anyone |
+ * who is authenticated with a Google account or a service account. |
+ * |
+ * * `user:{emailid}`: An email address that represents a specific Google |
+ * account. For example, `alice@gmail.com` or `joe@example.com`. |
+ * |
+ * |
+ * * `serviceAccount:{emailid}`: An email address that represents a service |
+ * account. For example, `my-other-app@appspot.gserviceaccount.com`. |
+ * |
+ * * `group:{emailid}`: An email address that represents a Google group. |
+ * For example, `admins@example.com`. |
+ * |
+ * * `domain:{domain}`: A Google Apps domain name that represents all the |
+ * users of that domain. For example, `google.com` or `example.com`. |
+ */ |
+ core.List<core.String> members; |
+ /** |
+ * Role that is assigned to `members`. |
+ * For example, `roles/viewer`, `roles/editor`, or `roles/owner`. |
+ * Required |
+ */ |
+ core.String role; |
+ |
+ Binding(); |
+ |
+ Binding.fromJson(core.Map _json) { |
+ if (_json.containsKey("members")) { |
+ members = _json["members"]; |
+ } |
+ if (_json.containsKey("role")) { |
+ role = _json["role"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (members != null) { |
+ _json["members"] = members; |
+ } |
+ if (role != null) { |
+ _json["role"] = role; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** Write a Cloud Audit log */ |
+class CloudAuditOptions { |
+ |
+ CloudAuditOptions(); |
+ |
+ CloudAuditOptions.fromJson(core.Map _json) { |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ return _json; |
+ } |
+} |
+ |
+/** A condition to be met. */ |
+class Condition { |
+ /** |
+ * Trusted attributes supplied by the IAM system. |
+ * Possible string values are: |
+ * - "NO_ATTR" : Default non-attribute. |
+ * - "AUTHORITY" : Either principal or (if present) authority selector. |
+ * - "ATTRIBUTION" : The principal (even if an authority selector is present), |
+ * which |
+ * must only be used for attribution, not authorization. |
+ * - "APPROVER" : An approver (distinct from the requester) that has |
+ * authorized this |
+ * request. |
+ * When used with IN, the condition indicates that one of the approvers |
+ * associated with the request matches the specified principal, or is a |
+ * member of the specified group. Approvers can only grant additional |
+ * access, and are thus only used in a strictly positive context |
+ * (e.g. ALLOW/IN or DENY/NOT_IN). |
+ * See: go/rpc-security-policy-dynamicauth. |
+ * - "JUSTIFICATION_TYPE" : What types of justifications have been supplied |
+ * with this request. |
+ * String values should match enum names from tech.iam.JustificationType, |
+ * e.g. "MANUAL_STRING". It is not permitted to grant access based on |
+ * the *absence* of a justification, so justification conditions can only |
+ * be used in a "positive" context (e.g., ALLOW/IN or DENY/NOT_IN). |
+ * |
+ * Multiple justifications, e.g., a Buganizer ID and a manually-entered |
+ * reason, are normal and supported. |
+ */ |
+ core.String iam; |
+ /** |
+ * An operator to apply the subject with. |
+ * Possible string values are: |
+ * - "NO_OP" : Default no-op. |
+ * - "EQUALS" : DEPRECATED. Use IN instead. |
+ * - "NOT_EQUALS" : DEPRECATED. Use NOT_IN instead. |
+ * - "IN" : The condition is true if the subject (or any element of it if it |
+ * is |
+ * a set) matches any of the supplied values. |
+ * - "NOT_IN" : The condition is true if the subject (or every element of it |
+ * if it is |
+ * a set) matches none of the supplied values. |
+ * - "DISCHARGED" : Subject is discharged |
+ */ |
+ core.String op; |
+ /** Trusted attributes discharged by the service. */ |
+ core.String svc; |
+ /** |
+ * Trusted attributes supplied by any service that owns resources and uses |
+ * the IAM system for access control. |
+ * Possible string values are: |
+ * - "NO_ATTR" : Default non-attribute type |
+ * - "REGION" : Region of the resource |
+ * - "SERVICE" : Service name |
+ * - "NAME" : Resource name |
+ * - "IP" : IP address of the caller |
+ */ |
+ core.String sys; |
+ /** DEPRECATED. Use 'values' instead. */ |
+ core.String value; |
+ /** The objects of the condition. This is mutually exclusive with 'value'. */ |
+ core.List<core.String> values; |
+ |
+ Condition(); |
+ |
+ Condition.fromJson(core.Map _json) { |
+ if (_json.containsKey("iam")) { |
+ iam = _json["iam"]; |
+ } |
+ if (_json.containsKey("op")) { |
+ op = _json["op"]; |
+ } |
+ if (_json.containsKey("svc")) { |
+ svc = _json["svc"]; |
+ } |
+ if (_json.containsKey("sys")) { |
+ sys = _json["sys"]; |
+ } |
+ if (_json.containsKey("value")) { |
+ value = _json["value"]; |
+ } |
+ if (_json.containsKey("values")) { |
+ values = _json["values"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (iam != null) { |
+ _json["iam"] = iam; |
+ } |
+ if (op != null) { |
+ _json["op"] = op; |
+ } |
+ if (svc != null) { |
+ _json["svc"] = svc; |
+ } |
+ if (sys != null) { |
+ _json["sys"] = sys; |
+ } |
+ if (value != null) { |
+ _json["value"] = value; |
+ } |
+ if (values != null) { |
+ _json["values"] = values; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** Options for counters */ |
+class CounterOptions { |
+ /** The field value to attribute. */ |
+ core.String field; |
+ /** The metric to update. */ |
+ core.String metric; |
+ |
+ CounterOptions(); |
+ |
+ CounterOptions.fromJson(core.Map _json) { |
+ if (_json.containsKey("field")) { |
+ field = _json["field"]; |
+ } |
+ if (_json.containsKey("metric")) { |
+ metric = _json["metric"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (field != null) { |
+ _json["field"] = field; |
+ } |
+ if (metric != null) { |
+ _json["metric"] = metric; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** Write a Data Access (Gin) log */ |
+class DataAccessOptions { |
+ |
+ DataAccessOptions(); |
+ |
+ DataAccessOptions.fromJson(core.Map _json) { |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ return _json; |
+ } |
+} |
+ |
+/** |
+ * A generic empty message that you can re-use to avoid defining duplicated |
+ * empty messages in your APIs. A typical example is to use it as the request |
+ * or the response type of an API method. For instance: |
+ * |
+ * service Foo { |
+ * rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); |
+ * } |
+ * |
+ * The JSON representation for `Empty` is empty JSON object `{}`. |
+ */ |
+class Empty { |
+ |
+ Empty(); |
+ |
+ Empty.fromJson(core.Map _json) { |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ return _json; |
+ } |
+} |
+ |
+/** Response for ListRepos. */ |
+class ListReposResponse { |
+ /** The listed repos. */ |
+ core.List<Repo> repos; |
+ |
+ ListReposResponse(); |
+ |
+ ListReposResponse.fromJson(core.Map _json) { |
+ if (_json.containsKey("repos")) { |
+ repos = _json["repos"].map((value) => new Repo.fromJson(value)).toList(); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (repos != null) { |
+ _json["repos"] = repos.map((value) => (value).toJson()).toList(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** |
+ * Specifies what kind of log the caller must write |
+ * Increment a streamz counter with the specified metric and field names. |
+ * |
+ * Metric names should start with a '/', generally be lowercase-only, |
+ * and end in "_count". Field names should not contain an initial slash. |
+ * The actual exported metric names will have "/iam/policy" prepended. |
+ * |
+ * Field names correspond to IAM request parameters and field values are |
+ * their respective values. |
+ * |
+ * At present the only supported field names are |
+ * - "iam_principal", corresponding to IAMContext.principal; |
+ * - "" (empty string), resulting in one aggretated counter with no field. |
+ * |
+ * Examples: |
+ * counter { metric: "/debug_access_count" field: "iam_principal" } |
+ * ==> increment counter /iam/policy/backend_debug_access_count |
+ * {iam_principal=[value of IAMContext.principal]} |
+ * |
+ * At this time we do not support: |
+ * * multiple field names (though this may be supported in the future) |
+ * * decrementing the counter |
+ * * incrementing it by anything other than 1 |
+ */ |
+class LogConfig { |
+ /** Cloud audit options. */ |
+ CloudAuditOptions cloudAudit; |
+ /** Counter options. */ |
+ CounterOptions counter; |
+ /** Data access options. */ |
+ DataAccessOptions dataAccess; |
+ |
+ LogConfig(); |
+ |
+ LogConfig.fromJson(core.Map _json) { |
+ if (_json.containsKey("cloudAudit")) { |
+ cloudAudit = new CloudAuditOptions.fromJson(_json["cloudAudit"]); |
+ } |
+ if (_json.containsKey("counter")) { |
+ counter = new CounterOptions.fromJson(_json["counter"]); |
+ } |
+ if (_json.containsKey("dataAccess")) { |
+ dataAccess = new DataAccessOptions.fromJson(_json["dataAccess"]); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (cloudAudit != null) { |
+ _json["cloudAudit"] = (cloudAudit).toJson(); |
+ } |
+ if (counter != null) { |
+ _json["counter"] = (counter).toJson(); |
+ } |
+ if (dataAccess != null) { |
+ _json["dataAccess"] = (dataAccess).toJson(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** |
+ * Configuration to automatically mirror a repository from another |
+ * hosting service, for example GitHub or BitBucket. |
+ */ |
+class MirrorConfig { |
+ /** |
+ * ID of the SSH deploy key at the other hosting service. |
+ * Removing this key from the other service would deauthorize |
+ * Google Cloud Source Repositories from mirroring. |
+ */ |
+ core.String deployKeyId; |
+ /** URL of the main repository at the other hosting service. */ |
+ core.String url; |
+ /** |
+ * ID of the webhook listening to updates to trigger mirroring. |
+ * Removing this webook from the other hosting service will stop |
+ * Google Cloud Source Repositories from receiving notifications, |
+ * and thereby disabling mirroring. |
+ */ |
+ core.String webhookId; |
+ |
+ MirrorConfig(); |
+ |
+ MirrorConfig.fromJson(core.Map _json) { |
+ if (_json.containsKey("deployKeyId")) { |
+ deployKeyId = _json["deployKeyId"]; |
+ } |
+ if (_json.containsKey("url")) { |
+ url = _json["url"]; |
+ } |
+ if (_json.containsKey("webhookId")) { |
+ webhookId = _json["webhookId"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (deployKeyId != null) { |
+ _json["deployKeyId"] = deployKeyId; |
+ } |
+ if (url != null) { |
+ _json["url"] = url; |
+ } |
+ if (webhookId != null) { |
+ _json["webhookId"] = webhookId; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** |
+ * Defines an Identity and Access Management (IAM) policy. It is used to |
+ * specify access control policies for Cloud Platform resources. |
+ * |
+ * |
+ * A `Policy` consists of a list of `bindings`. A `Binding` binds a list of |
+ * `members` to a `role`, where the members can be user accounts, Google groups, |
+ * Google domains, and service accounts. A `role` is a named list of permissions |
+ * defined by IAM. |
+ * |
+ * **Example** |
+ * |
+ * { |
+ * "bindings": [ |
+ * { |
+ * "role": "roles/owner", |
+ * "members": [ |
+ * "user:mike@example.com", |
+ * "group:admins@example.com", |
+ * "domain:google.com", |
+ * "serviceAccount:my-other-app@appspot.gserviceaccount.com", |
+ * ] |
+ * }, |
+ * { |
+ * "role": "roles/viewer", |
+ * "members": ["user:sean@example.com"] |
+ * } |
+ * ] |
+ * } |
+ * |
+ * For a description of IAM and its features, see the |
+ * [IAM developer's guide](https://cloud.google.com/iam). |
+ */ |
+class Policy { |
+ /** Specifies cloud audit logging configuration for this policy. */ |
+ core.List<AuditConfig> auditConfigs; |
+ /** |
+ * Associates a list of `members` to a `role`. |
+ * Multiple `bindings` must not be specified for the same `role`. |
+ * `bindings` with no members will result in an error. |
+ */ |
+ core.List<Binding> bindings; |
+ /** |
+ * `etag` is used for optimistic concurrency control as a way to help |
+ * prevent simultaneous updates of a policy from overwriting each other. |
+ * It is strongly suggested that systems make use of the `etag` in the |
+ * read-modify-write cycle to perform policy updates in order to avoid race |
+ * conditions: An `etag` is returned in the response to `getIamPolicy`, and |
+ * systems are expected to put that etag in the request to `setIamPolicy` to |
+ * ensure that their change will be applied to the same version of the policy. |
+ * |
+ * If no `etag` is provided in the call to `setIamPolicy`, then the existing |
+ * policy is overwritten blindly. |
+ */ |
+ core.String etag; |
+ core.List<core.int> get etagAsBytes { |
+ return convert.BASE64.decode(etag); |
+ } |
+ |
+ void set etagAsBytes(core.List<core.int> _bytes) { |
+ etag = convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll("+", "-"); |
+ } |
+ core.bool iamOwned; |
+ /** |
+ * If more than one rule is specified, the rules are applied in the following |
+ * manner: |
+ * - All matching LOG rules are always applied. |
+ * - If any DENY/DENY_WITH_LOG rule matches, permission is denied. |
+ * Logging will be applied if one or more matching rule requires logging. |
+ * - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is |
+ * granted. |
+ * Logging will be applied if one or more matching rule requires logging. |
+ * - Otherwise, if no rule applies, permission is denied. |
+ */ |
+ core.List<Rule> rules; |
+ /** Version of the `Policy`. The default version is 0. */ |
+ core.int version; |
+ |
+ Policy(); |
+ |
+ Policy.fromJson(core.Map _json) { |
+ if (_json.containsKey("auditConfigs")) { |
+ auditConfigs = _json["auditConfigs"].map((value) => new AuditConfig.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("bindings")) { |
+ bindings = _json["bindings"].map((value) => new Binding.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("etag")) { |
+ etag = _json["etag"]; |
+ } |
+ if (_json.containsKey("iamOwned")) { |
+ iamOwned = _json["iamOwned"]; |
+ } |
+ if (_json.containsKey("rules")) { |
+ rules = _json["rules"].map((value) => new Rule.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("version")) { |
+ version = _json["version"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (auditConfigs != null) { |
+ _json["auditConfigs"] = auditConfigs.map((value) => (value).toJson()).toList(); |
+ } |
+ if (bindings != null) { |
+ _json["bindings"] = bindings.map((value) => (value).toJson()).toList(); |
+ } |
+ if (etag != null) { |
+ _json["etag"] = etag; |
+ } |
+ if (iamOwned != null) { |
+ _json["iamOwned"] = iamOwned; |
+ } |
+ if (rules != null) { |
+ _json["rules"] = rules.map((value) => (value).toJson()).toList(); |
+ } |
+ if (version != null) { |
+ _json["version"] = version; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** |
+ * A repository (or repo) is a Git repository storing versioned source content. |
+ */ |
+class Repo { |
+ /** How this repository mirrors a repository managed by another service. */ |
+ MirrorConfig mirrorConfig; |
+ /** |
+ * Resource name of the repository, of the form |
+ * `projects/<project>/repos/<repo>`. |
+ */ |
+ core.String name; |
+ /** The size in bytes of the repo. */ |
+ core.String size; |
+ /** URL to clone the repository from Google Cloud Source Repositories. */ |
+ core.String url; |
+ |
+ Repo(); |
+ |
+ Repo.fromJson(core.Map _json) { |
+ if (_json.containsKey("mirrorConfig")) { |
+ mirrorConfig = new MirrorConfig.fromJson(_json["mirrorConfig"]); |
+ } |
+ if (_json.containsKey("name")) { |
+ name = _json["name"]; |
+ } |
+ if (_json.containsKey("size")) { |
+ size = _json["size"]; |
+ } |
+ if (_json.containsKey("url")) { |
+ url = _json["url"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (mirrorConfig != null) { |
+ _json["mirrorConfig"] = (mirrorConfig).toJson(); |
+ } |
+ if (name != null) { |
+ _json["name"] = name; |
+ } |
+ if (size != null) { |
+ _json["size"] = size; |
+ } |
+ if (url != null) { |
+ _json["url"] = url; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** A rule to be applied in a Policy. */ |
+class Rule { |
+ /** |
+ * Required |
+ * Possible string values are: |
+ * - "NO_ACTION" : Default no action. |
+ * - "ALLOW" : Matching 'Entries' grant access. |
+ * - "ALLOW_WITH_LOG" : Matching 'Entries' grant access and the caller |
+ * promises to log |
+ * the request per the returned log_configs. |
+ * - "DENY" : Matching 'Entries' deny access. |
+ * - "DENY_WITH_LOG" : Matching 'Entries' deny access and the caller promises |
+ * to log |
+ * the request per the returned log_configs. |
+ * - "LOG" : Matching 'Entries' tell IAM.Check callers to generate logs. |
+ */ |
+ core.String action; |
+ /** Additional restrictions that must be met */ |
+ core.List<Condition> conditions; |
+ /** Human-readable description of the rule. */ |
+ core.String description; |
+ /** |
+ * If one or more 'in' clauses are specified, the rule matches if |
+ * the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries. |
+ */ |
+ core.List<core.String> in_; |
+ /** |
+ * The config returned to callers of tech.iam.IAM.CheckPolicy for any entries |
+ * that match the LOG action. |
+ */ |
+ core.List<LogConfig> logConfig; |
+ /** |
+ * If one or more 'not_in' clauses are specified, the rule matches |
+ * if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries. |
+ * The format for in and not_in entries is the same as for members in a |
+ * Binding (see google/iam/v1/policy.proto). |
+ */ |
+ core.List<core.String> notIn; |
+ /** |
+ * A permission is a string of form '<service>.<resource type>.<verb>' |
+ * (e.g., 'storage.buckets.list'). A value of '*' matches all permissions, |
+ * and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs. |
+ */ |
+ core.List<core.String> permissions; |
+ |
+ Rule(); |
+ |
+ Rule.fromJson(core.Map _json) { |
+ if (_json.containsKey("action")) { |
+ action = _json["action"]; |
+ } |
+ if (_json.containsKey("conditions")) { |
+ conditions = _json["conditions"].map((value) => new Condition.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("description")) { |
+ description = _json["description"]; |
+ } |
+ if (_json.containsKey("in")) { |
+ in_ = _json["in"]; |
+ } |
+ if (_json.containsKey("logConfig")) { |
+ logConfig = _json["logConfig"].map((value) => new LogConfig.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("notIn")) { |
+ notIn = _json["notIn"]; |
+ } |
+ if (_json.containsKey("permissions")) { |
+ permissions = _json["permissions"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (action != null) { |
+ _json["action"] = action; |
+ } |
+ if (conditions != null) { |
+ _json["conditions"] = conditions.map((value) => (value).toJson()).toList(); |
+ } |
+ if (description != null) { |
+ _json["description"] = description; |
+ } |
+ if (in_ != null) { |
+ _json["in"] = in_; |
+ } |
+ if (logConfig != null) { |
+ _json["logConfig"] = logConfig.map((value) => (value).toJson()).toList(); |
+ } |
+ if (notIn != null) { |
+ _json["notIn"] = notIn; |
+ } |
+ if (permissions != null) { |
+ _json["permissions"] = permissions; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** Request message for `SetIamPolicy` method. */ |
+class SetIamPolicyRequest { |
+ /** |
+ * REQUIRED: The complete policy to be applied to the `resource`. The size of |
+ * the policy is limited to a few 10s of KB. An empty policy is a |
+ * valid policy but certain Cloud Platform services (such as Projects) |
+ * might reject them. |
+ */ |
+ Policy policy; |
+ /** |
+ * OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only |
+ * the fields in the mask will be modified. If no mask is provided, a default |
+ * mask is used: |
+ * paths: "bindings, etag" |
+ * This field is only used by Cloud IAM. |
+ */ |
+ core.String updateMask; |
+ |
+ SetIamPolicyRequest(); |
+ |
+ SetIamPolicyRequest.fromJson(core.Map _json) { |
+ if (_json.containsKey("policy")) { |
+ policy = new Policy.fromJson(_json["policy"]); |
+ } |
+ if (_json.containsKey("updateMask")) { |
+ updateMask = _json["updateMask"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (policy != null) { |
+ _json["policy"] = (policy).toJson(); |
+ } |
+ if (updateMask != null) { |
+ _json["updateMask"] = updateMask; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** Request message for `TestIamPermissions` method. */ |
+class TestIamPermissionsRequest { |
+ /** |
+ * The set of permissions to check for the `resource`. Permissions with |
+ * wildcards (such as '*' or 'storage.*') are not allowed. For more |
+ * information see |
+ * [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). |
+ */ |
+ core.List<core.String> permissions; |
+ |
+ TestIamPermissionsRequest(); |
+ |
+ TestIamPermissionsRequest.fromJson(core.Map _json) { |
+ if (_json.containsKey("permissions")) { |
+ permissions = _json["permissions"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (permissions != null) { |
+ _json["permissions"] = permissions; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** Response message for `TestIamPermissions` method. */ |
+class TestIamPermissionsResponse { |
+ /** |
+ * A subset of `TestPermissionsRequest.permissions` that the caller is |
+ * allowed. |
+ */ |
+ core.List<core.String> permissions; |
+ |
+ TestIamPermissionsResponse(); |
+ |
+ TestIamPermissionsResponse.fromJson(core.Map _json) { |
+ if (_json.containsKey("permissions")) { |
+ permissions = _json["permissions"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (permissions != null) { |
+ _json["permissions"] = permissions; |
+ } |
+ return _json; |
+ } |
+} |