| // This is a generated file (see the discoveryapis_generator project). |
| |
| // ignore_for_file: camel_case_types |
| // ignore_for_file: comment_references |
| // ignore_for_file: directives_ordering |
| // ignore_for_file: file_names |
| // ignore_for_file: library_names |
| // ignore_for_file: lines_longer_than_80_chars |
| // ignore_for_file: non_constant_identifier_names |
| // ignore_for_file: prefer_expression_function_bodies |
| // ignore_for_file: prefer_final_locals |
| // ignore_for_file: prefer_interpolation_to_compose_strings |
| // ignore_for_file: unnecessary_brace_in_string_interps |
| // ignore_for_file: unnecessary_cast |
| // ignore_for_file: unnecessary_lambdas |
| // ignore_for_file: unnecessary_parenthesis |
| // ignore_for_file: unnecessary_string_interpolations |
| |
| library googleapis.servicecontrol.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 userAgent = 'dart-api-client servicecontrol/v1'; |
| |
| /// Provides control plane functionality to managed services, such as logging, |
| /// monitoring, and status checks. |
| class ServicecontrolApi { |
| /// View and manage your data across Google Cloud Platform services |
| static const cloudPlatformScope = |
| 'https://www.googleapis.com/auth/cloud-platform'; |
| |
| /// Manage your Google Service Control data |
| static const servicecontrolScope = |
| 'https://www.googleapis.com/auth/servicecontrol'; |
| |
| final commons.ApiRequester _requester; |
| |
| ServicesResourceApi get services => ServicesResourceApi(_requester); |
| |
| ServicecontrolApi(http.Client client, |
| {core.String rootUrl = 'https://servicecontrol.googleapis.com/', |
| core.String servicePath = ''}) |
| : _requester = |
| commons.ApiRequester(client, rootUrl, servicePath, userAgent); |
| } |
| |
| class ServicesResourceApi { |
| final commons.ApiRequester _requester; |
| |
| ServicesResourceApi(commons.ApiRequester client) : _requester = client; |
| |
| /// Attempts to allocate quota for the specified consumer. It should be called |
| /// before the operation is executed. This method requires the |
| /// `servicemanagement.services.quota` permission on the specified service. |
| /// For more information, see [Cloud IAM](https://cloud.google.com/iam). |
| /// **NOTE:** The client **must** fail-open on server errors `INTERNAL`, |
| /// `UNKNOWN`, `DEADLINE_EXCEEDED`, and `UNAVAILABLE`. To ensure system |
| /// reliability, the server may inject these errors to prohibit any hard |
| /// dependency on the quota functionality. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [serviceName] - Name of the service as specified in the service |
| /// configuration. For example, `"pubsub.googleapis.com"`. See |
| /// google.api.Service for the definition of a service name. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [AllocateQuotaResponse]. |
| /// |
| /// 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<AllocateQuotaResponse> allocateQuota( |
| AllocateQuotaRequest request, |
| core.String serviceName, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (serviceName == null) { |
| throw core.ArgumentError('Parameter serviceName is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/services/' + |
| commons.Escaper.ecapeVariable('$serviceName') + |
| ':allocateQuota'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => AllocateQuotaResponse.fromJson(data)); |
| } |
| |
| /// Checks whether an operation on a service should be allowed to proceed |
| /// based on the configuration of the service and related policies. It must be |
| /// called before the operation is executed. If feasible, the client should |
| /// cache the check results and reuse them for 60 seconds. In case of any |
| /// server errors, the client should rely on the cached results for much |
| /// longer time to avoid outage. WARNING: There is general 60s delay for the |
| /// configuration and policy propagation, therefore callers MUST NOT depend on |
| /// the `Check` method having the latest policy information. NOTE: the |
| /// CheckRequest has the size limit of 64KB. This method requires the |
| /// `servicemanagement.services.check` permission on the specified service. |
| /// For more information, see [Cloud IAM](https://cloud.google.com/iam). |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [serviceName] - The service name as specified in its service |
| /// configuration. For example, `"pubsub.googleapis.com"`. See |
| /// [google.api.Service](https://cloud.google.com/service-management/reference/rpc/google.api#google.api.Service) |
| /// for the definition of a service name. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [CheckResponse]. |
| /// |
| /// 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<CheckResponse> check( |
| CheckRequest request, |
| core.String serviceName, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (serviceName == null) { |
| throw core.ArgumentError('Parameter serviceName is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/services/' + |
| commons.Escaper.ecapeVariable('$serviceName') + |
| ':check'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => CheckResponse.fromJson(data)); |
| } |
| |
| /// Reports operation results to Google Service Control, such as logs and |
| /// metrics. It should be called after an operation is completed. If feasible, |
| /// the client should aggregate reporting data for up to 5 seconds to reduce |
| /// API traffic. Limiting aggregation to 5 seconds is to reduce data loss |
| /// during client crashes. Clients should carefully choose the aggregation |
| /// time window to avoid data loss risk more than 0.01% for business and |
| /// compliance reasons. NOTE: the ReportRequest has the size limit |
| /// (wire-format byte size) of 1MB. This method requires the |
| /// `servicemanagement.services.report` permission on the specified service. |
| /// For more information, see [Google Cloud |
| /// IAM](https://cloud.google.com/iam). |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [serviceName] - The service name as specified in its service |
| /// configuration. For example, `"pubsub.googleapis.com"`. See |
| /// [google.api.Service](https://cloud.google.com/service-management/reference/rpc/google.api#google.api.Service) |
| /// for the definition of a service name. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ReportResponse]. |
| /// |
| /// 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<ReportResponse> report( |
| ReportRequest request, |
| core.String serviceName, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (serviceName == null) { |
| throw core.ArgumentError('Parameter serviceName is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/services/' + |
| commons.Escaper.ecapeVariable('$serviceName') + |
| ':report'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => ReportResponse.fromJson(data)); |
| } |
| } |
| |
| class AllocateInfo { |
| /// A list of label keys that were unused by the server in processing the |
| /// request. Thus, for similar requests repeated in a certain future time |
| /// window, the caller can choose to ignore these labels in the requests to |
| /// achieve better client-side cache hits and quota aggregation for rate |
| /// quota. This field is not populated for allocation quota checks. |
| core.List<core.String> unusedArguments; |
| |
| AllocateInfo(); |
| |
| AllocateInfo.fromJson(core.Map _json) { |
| if (_json.containsKey('unusedArguments')) { |
| unusedArguments = (_json['unusedArguments'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (unusedArguments != null) { |
| _json['unusedArguments'] = unusedArguments; |
| } |
| return _json; |
| } |
| } |
| |
| /// Request message for the AllocateQuota method. |
| class AllocateQuotaRequest { |
| /// Operation that describes the quota allocation. |
| QuotaOperation allocateOperation; |
| |
| /// Specifies which version of service configuration should be used to process |
| /// the request. If unspecified or no matching version can be found, the |
| /// latest one will be used. |
| core.String serviceConfigId; |
| |
| AllocateQuotaRequest(); |
| |
| AllocateQuotaRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('allocateOperation')) { |
| allocateOperation = QuotaOperation.fromJson(_json['allocateOperation']); |
| } |
| if (_json.containsKey('serviceConfigId')) { |
| serviceConfigId = _json['serviceConfigId'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (allocateOperation != null) { |
| _json['allocateOperation'] = allocateOperation.toJson(); |
| } |
| if (serviceConfigId != null) { |
| _json['serviceConfigId'] = serviceConfigId; |
| } |
| return _json; |
| } |
| } |
| |
| /// Response message for the AllocateQuota method. |
| class AllocateQuotaResponse { |
| /// Indicates the decision of the allocate. |
| core.List<QuotaError> allocateErrors; |
| |
| /// WARNING: DO NOT use this field until this warning message is removed. |
| AllocateInfo allocateInfo; |
| |
| /// The same operation_id value used in the AllocateQuotaRequest. Used for |
| /// logging and diagnostics purposes. |
| core.String operationId; |
| |
| /// Quota metrics to indicate the result of allocation. Depending on the |
| /// request, one or more of the following metrics will be included: 1. Per |
| /// quota group or per quota metric incremental usage will be specified using |
| /// the following delta metric : |
| /// "serviceruntime.googleapis.com/api/consumer/quota_used_count" 2. The quota |
| /// limit reached condition will be specified using the following boolean |
| /// metric : "serviceruntime.googleapis.com/quota/exceeded" |
| core.List<MetricValueSet> quotaMetrics; |
| |
| /// ID of the actual config used to process the request. |
| core.String serviceConfigId; |
| |
| AllocateQuotaResponse(); |
| |
| AllocateQuotaResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('allocateErrors')) { |
| allocateErrors = (_json['allocateErrors'] as core.List) |
| .map<QuotaError>((value) => QuotaError.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('allocateInfo')) { |
| allocateInfo = AllocateInfo.fromJson(_json['allocateInfo']); |
| } |
| if (_json.containsKey('operationId')) { |
| operationId = _json['operationId'] as core.String; |
| } |
| if (_json.containsKey('quotaMetrics')) { |
| quotaMetrics = (_json['quotaMetrics'] as core.List) |
| .map<MetricValueSet>((value) => MetricValueSet.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('serviceConfigId')) { |
| serviceConfigId = _json['serviceConfigId'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (allocateErrors != null) { |
| _json['allocateErrors'] = |
| allocateErrors.map((value) => value.toJson()).toList(); |
| } |
| if (allocateInfo != null) { |
| _json['allocateInfo'] = allocateInfo.toJson(); |
| } |
| if (operationId != null) { |
| _json['operationId'] = operationId; |
| } |
| if (quotaMetrics != null) { |
| _json['quotaMetrics'] = |
| quotaMetrics.map((value) => value.toJson()).toList(); |
| } |
| if (serviceConfigId != null) { |
| _json['serviceConfigId'] = serviceConfigId; |
| } |
| return _json; |
| } |
| } |
| |
| /// The allowed types for [VALUE] in a `[KEY]:[VALUE]` attribute. |
| class AttributeValue { |
| /// A Boolean value represented by `true` or `false`. |
| core.bool boolValue; |
| |
| /// A 64-bit signed integer. |
| core.String intValue; |
| |
| /// A string up to 256 bytes long. |
| TruncatableString stringValue; |
| |
| AttributeValue(); |
| |
| AttributeValue.fromJson(core.Map _json) { |
| if (_json.containsKey('boolValue')) { |
| boolValue = _json['boolValue'] as core.bool; |
| } |
| if (_json.containsKey('intValue')) { |
| intValue = _json['intValue'] as core.String; |
| } |
| if (_json.containsKey('stringValue')) { |
| stringValue = TruncatableString.fromJson(_json['stringValue']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (boolValue != null) { |
| _json['boolValue'] = boolValue; |
| } |
| if (intValue != null) { |
| _json['intValue'] = intValue; |
| } |
| if (stringValue != null) { |
| _json['stringValue'] = stringValue.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// A set of attributes, each in the format `[KEY]:[VALUE]`. |
| class Attributes { |
| /// The set of attributes. Each attribute's key can be up to 128 bytes long. |
| /// The value can be a string up to 256 bytes, a signed 64-bit integer, or the |
| /// Boolean values `true` and `false`. For example: "/instance_id": |
| /// "my-instance" "/http/user_agent": "" "/http/request_bytes": 300 |
| /// "abc.com/myattribute": true |
| core.Map<core.String, AttributeValue> attributeMap; |
| |
| /// The number of attributes that were discarded. Attributes can be discarded |
| /// because their keys are too long or because there are too many attributes. |
| /// If this value is 0 then all attributes are valid. |
| core.int droppedAttributesCount; |
| |
| Attributes(); |
| |
| Attributes.fromJson(core.Map _json) { |
| if (_json.containsKey('attributeMap')) { |
| attributeMap = commons.mapMap<core.Map, AttributeValue>( |
| _json['attributeMap'].cast<core.String, core.Map>(), |
| (core.Map item) => AttributeValue.fromJson(item)); |
| } |
| if (_json.containsKey('droppedAttributesCount')) { |
| droppedAttributesCount = _json['droppedAttributesCount'] as core.int; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (attributeMap != null) { |
| _json['attributeMap'] = |
| commons.mapMap<AttributeValue, core.Map<core.String, core.Object>>( |
| attributeMap, (AttributeValue item) => item.toJson()); |
| } |
| if (droppedAttributesCount != null) { |
| _json['droppedAttributesCount'] = droppedAttributesCount; |
| } |
| return _json; |
| } |
| } |
| |
| /// Common audit log format for Google Cloud Platform API operations. |
| class AuditLog { |
| /// Authentication information. |
| AuthenticationInfo authenticationInfo; |
| |
| /// Authorization information. If there are multiple resources or permissions |
| /// involved, then there is one AuthorizationInfo element for each {resource, |
| /// permission} tuple. |
| core.List<AuthorizationInfo> authorizationInfo; |
| |
| /// Other service-specific data about the request, response, and other |
| /// information associated with the current audited event. |
| /// |
| /// The values for Object must be JSON objects. It can consist of `num`, |
| /// `String`, `bool` and `null` as well as `Map` and `List` values. |
| core.Map<core.String, core.Object> metadata; |
| |
| /// The name of the service method or operation. For API calls, this should be |
| /// the name of the API method. For example, |
| /// "google.cloud.bigquery.v2.TableService.InsertTable" |
| /// "google.logging.v2.ConfigServiceV2.CreateSink" |
| core.String methodName; |
| |
| /// The number of items returned from a List or Query API method, if |
| /// applicable. |
| core.String numResponseItems; |
| |
| /// The operation request. This may not include all request parameters, such |
| /// as those that are too large, privacy-sensitive, or duplicated elsewhere in |
| /// the log record. It should never include user-generated data, such as file |
| /// contents. When the JSON object represented here has a proto equivalent, |
| /// the proto name will be indicated in the `@type` property. |
| /// |
| /// The values for Object must be JSON objects. It can consist of `num`, |
| /// `String`, `bool` and `null` as well as `Map` and `List` values. |
| core.Map<core.String, core.Object> request; |
| |
| /// Metadata about the operation. |
| RequestMetadata requestMetadata; |
| |
| /// The resource location information. |
| ResourceLocation resourceLocation; |
| |
| /// The resource or collection that is the target of the operation. The name |
| /// is a scheme-less URI, not including the API service name. For example: |
| /// "projects/PROJECT_ID/zones/us-central1-a/instances" |
| /// "projects/PROJECT_ID/datasets/DATASET_ID" |
| core.String resourceName; |
| |
| /// The resource's original state before mutation. Present only for operations |
| /// which have successfully modified the targeted resource(s). In general, |
| /// this field should contain all changed fields, except those that are |
| /// already been included in `request`, `response`, `metadata` or |
| /// `service_data` fields. When the JSON object represented here has a proto |
| /// equivalent, the proto name will be indicated in the `@type` property. |
| /// |
| /// The values for Object must be JSON objects. It can consist of `num`, |
| /// `String`, `bool` and `null` as well as `Map` and `List` values. |
| core.Map<core.String, core.Object> resourceOriginalState; |
| |
| /// The operation response. This may not include all response elements, such |
| /// as those that are too large, privacy-sensitive, or duplicated elsewhere in |
| /// the log record. It should never include user-generated data, such as file |
| /// contents. When the JSON object represented here has a proto equivalent, |
| /// the proto name will be indicated in the `@type` property. |
| /// |
| /// The values for Object must be JSON objects. It can consist of `num`, |
| /// `String`, `bool` and `null` as well as `Map` and `List` values. |
| core.Map<core.String, core.Object> response; |
| |
| /// Deprecated. Use the `metadata` field instead. Other service-specific data |
| /// about the request, response, and other activities. |
| /// |
| /// The values for Object must be JSON objects. It can consist of `num`, |
| /// `String`, `bool` and `null` as well as `Map` and `List` values. |
| core.Map<core.String, core.Object> serviceData; |
| |
| /// The name of the API service performing the operation. For example, |
| /// `"compute.googleapis.com"`. |
| core.String serviceName; |
| |
| /// The status of the overall operation. |
| Status status; |
| |
| AuditLog(); |
| |
| AuditLog.fromJson(core.Map _json) { |
| if (_json.containsKey('authenticationInfo')) { |
| authenticationInfo = |
| AuthenticationInfo.fromJson(_json['authenticationInfo']); |
| } |
| if (_json.containsKey('authorizationInfo')) { |
| authorizationInfo = (_json['authorizationInfo'] as core.List) |
| .map<AuthorizationInfo>((value) => AuthorizationInfo.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('metadata')) { |
| metadata = commons.mapMap<core.Object, core.Object>( |
| _json['metadata'].cast<core.String, core.Object>(), |
| (core.Object item) => item as core.Object); |
| } |
| if (_json.containsKey('methodName')) { |
| methodName = _json['methodName'] as core.String; |
| } |
| if (_json.containsKey('numResponseItems')) { |
| numResponseItems = _json['numResponseItems'] as core.String; |
| } |
| if (_json.containsKey('request')) { |
| request = commons.mapMap<core.Object, core.Object>( |
| _json['request'].cast<core.String, core.Object>(), |
| (core.Object item) => item as core.Object); |
| } |
| if (_json.containsKey('requestMetadata')) { |
| requestMetadata = RequestMetadata.fromJson(_json['requestMetadata']); |
| } |
| if (_json.containsKey('resourceLocation')) { |
| resourceLocation = ResourceLocation.fromJson(_json['resourceLocation']); |
| } |
| if (_json.containsKey('resourceName')) { |
| resourceName = _json['resourceName'] as core.String; |
| } |
| if (_json.containsKey('resourceOriginalState')) { |
| resourceOriginalState = commons.mapMap<core.Object, core.Object>( |
| _json['resourceOriginalState'].cast<core.String, core.Object>(), |
| (core.Object item) => item as core.Object); |
| } |
| if (_json.containsKey('response')) { |
| response = commons.mapMap<core.Object, core.Object>( |
| _json['response'].cast<core.String, core.Object>(), |
| (core.Object item) => item as core.Object); |
| } |
| if (_json.containsKey('serviceData')) { |
| serviceData = commons.mapMap<core.Object, core.Object>( |
| _json['serviceData'].cast<core.String, core.Object>(), |
| (core.Object item) => item as core.Object); |
| } |
| if (_json.containsKey('serviceName')) { |
| serviceName = _json['serviceName'] as core.String; |
| } |
| if (_json.containsKey('status')) { |
| status = Status.fromJson(_json['status']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (authenticationInfo != null) { |
| _json['authenticationInfo'] = authenticationInfo.toJson(); |
| } |
| if (authorizationInfo != null) { |
| _json['authorizationInfo'] = |
| authorizationInfo.map((value) => value.toJson()).toList(); |
| } |
| if (metadata != null) { |
| _json['metadata'] = metadata; |
| } |
| if (methodName != null) { |
| _json['methodName'] = methodName; |
| } |
| if (numResponseItems != null) { |
| _json['numResponseItems'] = numResponseItems; |
| } |
| if (request != null) { |
| _json['request'] = request; |
| } |
| if (requestMetadata != null) { |
| _json['requestMetadata'] = requestMetadata.toJson(); |
| } |
| if (resourceLocation != null) { |
| _json['resourceLocation'] = resourceLocation.toJson(); |
| } |
| if (resourceName != null) { |
| _json['resourceName'] = resourceName; |
| } |
| if (resourceOriginalState != null) { |
| _json['resourceOriginalState'] = resourceOriginalState; |
| } |
| if (response != null) { |
| _json['response'] = response; |
| } |
| if (serviceData != null) { |
| _json['serviceData'] = serviceData; |
| } |
| if (serviceName != null) { |
| _json['serviceName'] = serviceName; |
| } |
| if (status != null) { |
| _json['status'] = status.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// This message defines request authentication attributes. Terminology is based |
| /// on the JSON Web Token (JWT) standard, but the terms also correlate to |
| /// concepts in other standards. |
| class Auth { |
| /// A list of access level resource names that allow resources to be accessed |
| /// by authenticated requester. It is part of Secure GCP processing for the |
| /// incoming request. An access level string has the format: |
| /// "//{api_service_name}/accessPolicies/{policy_id}/accessLevels/{short_name}" |
| /// Example: |
| /// "//accesscontextmanager.googleapis.com/accessPolicies/MY_POLICY_ID/accessLevels/MY_LEVEL" |
| core.List<core.String> accessLevels; |
| |
| /// The intended audience(s) for this authentication information. Reflects the |
| /// audience (`aud`) claim within a JWT. The audience value(s) depends on the |
| /// `issuer`, but typically include one or more of the following pieces of |
| /// information: * The services intended to receive the credential. For |
| /// example, ["https://pubsub.googleapis.com/", |
| /// "https://storage.googleapis.com/"]. * A set of service-based scopes. For |
| /// example, ["https://www.googleapis.com/auth/cloud-platform"]. * The client |
| /// id of an app, such as the Firebase project id for JWTs from Firebase Auth. |
| /// Consult the documentation for the credential issuer to determine the |
| /// information provided. |
| core.List<core.String> audiences; |
| |
| /// Structured claims presented with the credential. JWTs include `{key: |
| /// value}` pairs for standard and private claims. The following is a subset |
| /// of the standard required and optional claims that would typically be |
| /// presented for a Google-based JWT: {'iss': 'accounts.google.com', 'sub': |
| /// '113289723416554971153', 'aud': ['123456789012', 'pubsub.googleapis.com'], |
| /// 'azp': '123456789012.apps.googleusercontent.com', 'email': |
| /// 'jsmith@example.com', 'iat': 1353601026, 'exp': 1353604926} SAML |
| /// assertions are similarly specified, but with an identity provider |
| /// dependent structure. |
| /// |
| /// The values for Object must be JSON objects. It can consist of `num`, |
| /// `String`, `bool` and `null` as well as `Map` and `List` values. |
| core.Map<core.String, core.Object> claims; |
| |
| /// The authorized presenter of the credential. Reflects the optional |
| /// Authorized Presenter (`azp`) claim within a JWT or the OAuth client id. |
| /// For example, a Google Cloud Platform client id looks as follows: |
| /// "123456789012.apps.googleusercontent.com". |
| core.String presenter; |
| |
| /// The authenticated principal. Reflects the issuer (`iss`) and subject |
| /// (`sub`) claims within a JWT. The issuer and subject should be `/` |
| /// delimited, with `/` percent-encoded within the subject fragment. For |
| /// Google accounts, the principal format is: |
| /// "https://accounts.google.com/{id}" |
| core.String principal; |
| |
| Auth(); |
| |
| Auth.fromJson(core.Map _json) { |
| if (_json.containsKey('accessLevels')) { |
| accessLevels = (_json['accessLevels'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('audiences')) { |
| audiences = (_json['audiences'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('claims')) { |
| claims = commons.mapMap<core.Object, core.Object>( |
| _json['claims'].cast<core.String, core.Object>(), |
| (core.Object item) => item as core.Object); |
| } |
| if (_json.containsKey('presenter')) { |
| presenter = _json['presenter'] as core.String; |
| } |
| if (_json.containsKey('principal')) { |
| principal = _json['principal'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (accessLevels != null) { |
| _json['accessLevels'] = accessLevels; |
| } |
| if (audiences != null) { |
| _json['audiences'] = audiences; |
| } |
| if (claims != null) { |
| _json['claims'] = claims; |
| } |
| if (presenter != null) { |
| _json['presenter'] = presenter; |
| } |
| if (principal != null) { |
| _json['principal'] = principal; |
| } |
| return _json; |
| } |
| } |
| |
| /// Authentication information for the operation. |
| class AuthenticationInfo { |
| /// The authority selector specified by the requestor, if any. It is not |
| /// guaranteed that the principal was allowed to use this authority. |
| core.String authoritySelector; |
| |
| /// The email address of the authenticated user (or service account on behalf |
| /// of third party principal) making the request. For third party identity |
| /// callers, the `principal_subject` field is populated instead of this field. |
| /// For privacy reasons, the principal email address is sometimes redacted. |
| /// For more information, see [Caller identities in audit |
| /// logs](https://cloud.google.com/logging/docs/audit#user-id). |
| core.String principalEmail; |
| |
| /// String representation of identity of requesting party. Populated for both |
| /// first and third party identities. |
| core.String principalSubject; |
| |
| /// Identity delegation history of an authenticated service account that makes |
| /// the request. It contains information on the real authorities that try to |
| /// access GCP resources by delegating on a service account. When multiple |
| /// authorities present, they are guaranteed to be sorted based on the |
| /// original ordering of the identity delegation events. |
| core.List<ServiceAccountDelegationInfo> serviceAccountDelegationInfo; |
| |
| /// The name of the service account key used to create or exchange credentials |
| /// for authenticating the service account making the request. This is a |
| /// scheme-less URI full resource name. For example: |
| /// "//iam.googleapis.com/projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}" |
| core.String serviceAccountKeyName; |
| |
| /// The third party identification (if any) of the authenticated user making |
| /// the request. When the JSON object represented here has a proto equivalent, |
| /// the proto name will be indicated in the `@type` property. |
| /// |
| /// The values for Object must be JSON objects. It can consist of `num`, |
| /// `String`, `bool` and `null` as well as `Map` and `List` values. |
| core.Map<core.String, core.Object> thirdPartyPrincipal; |
| |
| AuthenticationInfo(); |
| |
| AuthenticationInfo.fromJson(core.Map _json) { |
| if (_json.containsKey('authoritySelector')) { |
| authoritySelector = _json['authoritySelector'] as core.String; |
| } |
| if (_json.containsKey('principalEmail')) { |
| principalEmail = _json['principalEmail'] as core.String; |
| } |
| if (_json.containsKey('principalSubject')) { |
| principalSubject = _json['principalSubject'] as core.String; |
| } |
| if (_json.containsKey('serviceAccountDelegationInfo')) { |
| serviceAccountDelegationInfo = |
| (_json['serviceAccountDelegationInfo'] as core.List) |
| .map<ServiceAccountDelegationInfo>( |
| (value) => ServiceAccountDelegationInfo.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('serviceAccountKeyName')) { |
| serviceAccountKeyName = _json['serviceAccountKeyName'] as core.String; |
| } |
| if (_json.containsKey('thirdPartyPrincipal')) { |
| thirdPartyPrincipal = commons.mapMap<core.Object, core.Object>( |
| _json['thirdPartyPrincipal'].cast<core.String, core.Object>(), |
| (core.Object item) => item as core.Object); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (authoritySelector != null) { |
| _json['authoritySelector'] = authoritySelector; |
| } |
| if (principalEmail != null) { |
| _json['principalEmail'] = principalEmail; |
| } |
| if (principalSubject != null) { |
| _json['principalSubject'] = principalSubject; |
| } |
| if (serviceAccountDelegationInfo != null) { |
| _json['serviceAccountDelegationInfo'] = |
| serviceAccountDelegationInfo.map((value) => value.toJson()).toList(); |
| } |
| if (serviceAccountKeyName != null) { |
| _json['serviceAccountKeyName'] = serviceAccountKeyName; |
| } |
| if (thirdPartyPrincipal != null) { |
| _json['thirdPartyPrincipal'] = thirdPartyPrincipal; |
| } |
| return _json; |
| } |
| } |
| |
| /// Authorization information for the operation. |
| class AuthorizationInfo { |
| /// Whether or not authorization for `resource` and `permission` was granted. |
| core.bool granted; |
| |
| /// The required IAM permission. |
| core.String permission; |
| |
| /// The resource being accessed, as a REST-style string. For example: |
| /// bigquery.googleapis.com/projects/PROJECTID/datasets/DATASETID |
| core.String resource; |
| |
| /// Resource attributes used in IAM condition evaluation. This field contains |
| /// resource attributes like resource type and resource name. To get the whole |
| /// view of the attributes used in IAM condition evaluation, the user must |
| /// also look into `AuditLog.request_metadata.request_attributes`. |
| Resource resourceAttributes; |
| |
| AuthorizationInfo(); |
| |
| AuthorizationInfo.fromJson(core.Map _json) { |
| if (_json.containsKey('granted')) { |
| granted = _json['granted'] as core.bool; |
| } |
| if (_json.containsKey('permission')) { |
| permission = _json['permission'] as core.String; |
| } |
| if (_json.containsKey('resource')) { |
| resource = _json['resource'] as core.String; |
| } |
| if (_json.containsKey('resourceAttributes')) { |
| resourceAttributes = Resource.fromJson(_json['resourceAttributes']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (granted != null) { |
| _json['granted'] = granted; |
| } |
| if (permission != null) { |
| _json['permission'] = permission; |
| } |
| if (resource != null) { |
| _json['resource'] = resource; |
| } |
| if (resourceAttributes != null) { |
| _json['resourceAttributes'] = resourceAttributes.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Defines the errors to be returned in |
| /// google.api.servicecontrol.v1.CheckResponse.check_errors. |
| class CheckError { |
| /// The error code. |
| /// Possible string values are: |
| /// - "ERROR_CODE_UNSPECIFIED" : This is never used in `CheckResponse`. |
| /// - "NOT_FOUND" : The consumer's project id, network container, or resource |
| /// container was not found. Same as google.rpc.Code.NOT_FOUND. |
| /// - "PERMISSION_DENIED" : The consumer doesn't have access to the specified |
| /// resource. Same as google.rpc.Code.PERMISSION_DENIED. |
| /// - "RESOURCE_EXHAUSTED" : Quota check failed. Same as |
| /// google.rpc.Code.RESOURCE_EXHAUSTED. |
| /// - "BUDGET_EXCEEDED" : Budget check failed. |
| /// - "DENIAL_OF_SERVICE_DETECTED" : The consumer's request has been flagged |
| /// as a DoS attack. |
| /// - "LOAD_SHEDDING" : The consumer's request should be rejected in order to |
| /// protect the service from being overloaded. |
| /// - "ABUSER_DETECTED" : The consumer has been flagged as an abuser. |
| /// - "SERVICE_NOT_ACTIVATED" : The consumer hasn't activated the service. |
| /// - "VISIBILITY_DENIED" : The consumer cannot access the service due to |
| /// visibility configuration. |
| /// - "BILLING_DISABLED" : The consumer cannot access the service because |
| /// billing is disabled. |
| /// - "PROJECT_DELETED" : The consumer's project has been marked as deleted |
| /// (soft deletion). |
| /// - "PROJECT_INVALID" : The consumer's project number or id does not |
| /// represent a valid project. |
| /// - "CONSUMER_INVALID" : The input consumer info does not represent a valid |
| /// consumer folder or organization. |
| /// - "IP_ADDRESS_BLOCKED" : The IP address of the consumer is invalid for the |
| /// specific consumer project. |
| /// - "REFERER_BLOCKED" : The referer address of the consumer request is |
| /// invalid for the specific consumer project. |
| /// - "CLIENT_APP_BLOCKED" : The client application of the consumer request is |
| /// invalid for the specific consumer project. |
| /// - "API_TARGET_BLOCKED" : The API targeted by this request is invalid for |
| /// the specified consumer project. |
| /// - "API_KEY_INVALID" : The consumer's API key is invalid. |
| /// - "API_KEY_EXPIRED" : The consumer's API Key has expired. |
| /// - "API_KEY_NOT_FOUND" : The consumer's API Key was not found in config |
| /// record. |
| /// - "SPATULA_HEADER_INVALID" : The consumer's spatula header is invalid. |
| /// - "LOAS_ROLE_INVALID" : The consumer's LOAS role is invalid. |
| /// - "NO_LOAS_PROJECT" : The consumer's LOAS role has no associated project. |
| /// - "LOAS_PROJECT_DISABLED" : The consumer's LOAS project is not `ACTIVE` in |
| /// LoquatV2. |
| /// - "SECURITY_POLICY_VIOLATED" : Request is not allowed as per security |
| /// policies defined in Org Policy. |
| /// - "INVALID_CREDENTIAL" : The credential in the request can not be |
| /// verified. |
| /// - "LOCATION_POLICY_VIOLATED" : Request is not allowed as per location |
| /// policies defined in Org Policy. |
| /// - "NAMESPACE_LOOKUP_UNAVAILABLE" : The backend server for looking up |
| /// project id/number is unavailable. |
| /// - "SERVICE_STATUS_UNAVAILABLE" : The backend server for checking service |
| /// status is unavailable. |
| /// - "BILLING_STATUS_UNAVAILABLE" : The backend server for checking billing |
| /// status is unavailable. |
| /// - "QUOTA_CHECK_UNAVAILABLE" : The backend server for checking quota limits |
| /// is unavailable. |
| /// - "LOAS_PROJECT_LOOKUP_UNAVAILABLE" : The Spanner for looking up LOAS |
| /// project is unavailable. |
| /// - "CLOUD_RESOURCE_MANAGER_BACKEND_UNAVAILABLE" : Cloud Resource Manager |
| /// backend server is unavailable. |
| /// - "SECURITY_POLICY_BACKEND_UNAVAILABLE" : NOTE: for customers in the scope |
| /// of Beta/GA of https://cloud.google.com/vpc-service-controls, this error is |
| /// no longer returned. If the security backend is unavailable, rpc |
| /// UNAVAILABLE status will be returned instead. It should be ignored and |
| /// should not be used to reject client requests. |
| /// - "LOCATION_POLICY_BACKEND_UNAVAILABLE" : Backend server for evaluating |
| /// location policy is unavailable. |
| core.String code; |
| |
| /// Free-form text providing details on the error cause of the error. |
| core.String detail; |
| |
| /// Contains public information about the check error. If available, |
| /// `status.code` will be non zero and client can propagate it out as public |
| /// error. |
| Status status; |
| |
| /// Subject to whom this error applies. See the specific code enum for more |
| /// details on this field. For example: - "project:" - "folder:" - |
| /// "organization:" |
| core.String subject; |
| |
| CheckError(); |
| |
| CheckError.fromJson(core.Map _json) { |
| if (_json.containsKey('code')) { |
| code = _json['code'] as core.String; |
| } |
| if (_json.containsKey('detail')) { |
| detail = _json['detail'] as core.String; |
| } |
| if (_json.containsKey('status')) { |
| status = Status.fromJson(_json['status']); |
| } |
| if (_json.containsKey('subject')) { |
| subject = _json['subject'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (code != null) { |
| _json['code'] = code; |
| } |
| if (detail != null) { |
| _json['detail'] = detail; |
| } |
| if (status != null) { |
| _json['status'] = status.toJson(); |
| } |
| if (subject != null) { |
| _json['subject'] = subject; |
| } |
| return _json; |
| } |
| } |
| |
| /// Contains additional information about the check operation. |
| class CheckInfo { |
| /// Consumer info of this check. |
| ConsumerInfo consumerInfo; |
| |
| /// A list of fields and label keys that are ignored by the server. The client |
| /// doesn't need to send them for following requests to improve performance |
| /// and allow better aggregation. |
| core.List<core.String> unusedArguments; |
| |
| CheckInfo(); |
| |
| CheckInfo.fromJson(core.Map _json) { |
| if (_json.containsKey('consumerInfo')) { |
| consumerInfo = ConsumerInfo.fromJson(_json['consumerInfo']); |
| } |
| if (_json.containsKey('unusedArguments')) { |
| unusedArguments = (_json['unusedArguments'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (consumerInfo != null) { |
| _json['consumerInfo'] = consumerInfo.toJson(); |
| } |
| if (unusedArguments != null) { |
| _json['unusedArguments'] = unusedArguments; |
| } |
| return _json; |
| } |
| } |
| |
| /// Request message for the Check method. |
| class CheckRequest { |
| /// The operation to be checked. |
| Operation operation; |
| |
| /// Requests the project settings to be returned as part of the check |
| /// response. |
| core.bool requestProjectSettings; |
| |
| /// Specifies which version of service configuration should be used to process |
| /// the request. If unspecified or no matching version can be found, the |
| /// latest one will be used. |
| core.String serviceConfigId; |
| |
| /// Indicates if service activation check should be skipped for this request. |
| /// Default behavior is to perform the check and apply relevant quota. |
| /// WARNING: Setting this flag to "true" will disable quota enforcement. |
| core.bool skipActivationCheck; |
| |
| CheckRequest(); |
| |
| CheckRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('operation')) { |
| operation = Operation.fromJson(_json['operation']); |
| } |
| if (_json.containsKey('requestProjectSettings')) { |
| requestProjectSettings = _json['requestProjectSettings'] as core.bool; |
| } |
| if (_json.containsKey('serviceConfigId')) { |
| serviceConfigId = _json['serviceConfigId'] as core.String; |
| } |
| if (_json.containsKey('skipActivationCheck')) { |
| skipActivationCheck = _json['skipActivationCheck'] as core.bool; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (operation != null) { |
| _json['operation'] = operation.toJson(); |
| } |
| if (requestProjectSettings != null) { |
| _json['requestProjectSettings'] = requestProjectSettings; |
| } |
| if (serviceConfigId != null) { |
| _json['serviceConfigId'] = serviceConfigId; |
| } |
| if (skipActivationCheck != null) { |
| _json['skipActivationCheck'] = skipActivationCheck; |
| } |
| return _json; |
| } |
| } |
| |
| /// Response message for the Check method. |
| class CheckResponse { |
| /// Indicate the decision of the check. If no check errors are present, the |
| /// service should process the operation. Otherwise the service should use the |
| /// list of errors to determine the appropriate action. |
| core.List<CheckError> checkErrors; |
| |
| /// Feedback data returned from the server during processing a Check request. |
| CheckInfo checkInfo; |
| |
| /// The same operation_id value used in the CheckRequest. Used for logging and |
| /// diagnostics purposes. |
| core.String operationId; |
| |
| /// Quota information for the check request associated with this response. |
| QuotaInfo quotaInfo; |
| |
| /// The actual config id used to process the request. |
| core.String serviceConfigId; |
| |
| /// The current service rollout id used to process the request. |
| core.String serviceRolloutId; |
| |
| CheckResponse(); |
| |
| CheckResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('checkErrors')) { |
| checkErrors = (_json['checkErrors'] as core.List) |
| .map<CheckError>((value) => CheckError.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('checkInfo')) { |
| checkInfo = CheckInfo.fromJson(_json['checkInfo']); |
| } |
| if (_json.containsKey('operationId')) { |
| operationId = _json['operationId'] as core.String; |
| } |
| if (_json.containsKey('quotaInfo')) { |
| quotaInfo = QuotaInfo.fromJson(_json['quotaInfo']); |
| } |
| if (_json.containsKey('serviceConfigId')) { |
| serviceConfigId = _json['serviceConfigId'] as core.String; |
| } |
| if (_json.containsKey('serviceRolloutId')) { |
| serviceRolloutId = _json['serviceRolloutId'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (checkErrors != null) { |
| _json['checkErrors'] = |
| checkErrors.map((value) => value.toJson()).toList(); |
| } |
| if (checkInfo != null) { |
| _json['checkInfo'] = checkInfo.toJson(); |
| } |
| if (operationId != null) { |
| _json['operationId'] = operationId; |
| } |
| if (quotaInfo != null) { |
| _json['quotaInfo'] = quotaInfo.toJson(); |
| } |
| if (serviceConfigId != null) { |
| _json['serviceConfigId'] = serviceConfigId; |
| } |
| if (serviceRolloutId != null) { |
| _json['serviceRolloutId'] = serviceRolloutId; |
| } |
| return _json; |
| } |
| } |
| |
| /// `ConsumerInfo` provides information about the consumer. |
| class ConsumerInfo { |
| /// The consumer identity number, can be Google cloud project number, folder |
| /// number or organization number e.g. 1234567890. A value of 0 indicates no |
| /// consumer number is found. |
| core.String consumerNumber; |
| |
| /// The Google cloud project number, e.g. 1234567890. A value of 0 indicates |
| /// no project number is found. NOTE: This field is deprecated after Chemist |
| /// support flexible consumer id. New code should not depend on this field |
| /// anymore. |
| core.String projectNumber; |
| |
| /// The type of the consumer which should have been defined in [Google |
| /// Resource Manager](https://cloud.google.com/resource-manager/). |
| /// Possible string values are: |
| /// - "CONSUMER_TYPE_UNSPECIFIED" : This is never used. |
| /// - "PROJECT" : The consumer is a Google Cloud Project. |
| /// - "FOLDER" : The consumer is a Google Cloud Folder. |
| /// - "ORGANIZATION" : The consumer is a Google Cloud Organization. |
| /// - "SERVICE_SPECIFIC" : Service-specific resource container which is |
| /// defined by the service producer to offer their users the ability to manage |
| /// service control functionalities at a finer level of granularity than the |
| /// PROJECT. |
| core.String type; |
| |
| ConsumerInfo(); |
| |
| ConsumerInfo.fromJson(core.Map _json) { |
| if (_json.containsKey('consumerNumber')) { |
| consumerNumber = _json['consumerNumber'] as core.String; |
| } |
| if (_json.containsKey('projectNumber')) { |
| projectNumber = _json['projectNumber'] as core.String; |
| } |
| if (_json.containsKey('type')) { |
| type = _json['type'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (consumerNumber != null) { |
| _json['consumerNumber'] = consumerNumber; |
| } |
| if (projectNumber != null) { |
| _json['projectNumber'] = projectNumber; |
| } |
| if (type != null) { |
| _json['type'] = type; |
| } |
| return _json; |
| } |
| } |
| |
| /// Distribution represents a frequency distribution of double-valued sample |
| /// points. It contains the size of the population of sample points plus |
| /// additional optional information: - the arithmetic mean of the samples - the |
| /// minimum and maximum of the samples - the sum-squared-deviation of the |
| /// samples, used to compute variance - a histogram of the values of the sample |
| /// points |
| class Distribution { |
| /// The number of samples in each histogram bucket. `bucket_counts` are |
| /// optional. If present, they must sum to the `count` value. The buckets are |
| /// defined below in `bucket_option`. There are N buckets. `bucket_counts[0]` |
| /// is the number of samples in the underflow bucket. `bucket_counts[1]` to |
| /// `bucket_counts[N-1]` are the numbers of samples in each of the finite |
| /// buckets. And `bucket_counts[N] is the number of samples in the overflow |
| /// bucket. See the comments of `bucket_option` below for more details. Any |
| /// suffix of trailing zeros may be omitted. |
| core.List<core.String> bucketCounts; |
| |
| /// The total number of samples in the distribution. Must be >= 0. |
| core.String count; |
| |
| /// Example points. Must be in increasing order of `value` field. |
| core.List<Exemplar> exemplars; |
| |
| /// Buckets with arbitrary user-provided width. |
| ExplicitBuckets explicitBuckets; |
| |
| /// Buckets with exponentially growing width. |
| ExponentialBuckets exponentialBuckets; |
| |
| /// Buckets with constant width. |
| LinearBuckets linearBuckets; |
| |
| /// The maximum of the population of values. Ignored if `count` is zero. |
| core.double maximum; |
| |
| /// The arithmetic mean of the samples in the distribution. If `count` is zero |
| /// then this field must be zero. |
| core.double mean; |
| |
| /// The minimum of the population of values. Ignored if `count` is zero. |
| core.double minimum; |
| |
| /// The sum of squared deviations from the mean: Sum[i=1..count]((x_i - |
| /// mean)^2) where each x_i is a sample values. If `count` is zero then this |
| /// field must be zero, otherwise validation of the request fails. |
| core.double sumOfSquaredDeviation; |
| |
| Distribution(); |
| |
| Distribution.fromJson(core.Map _json) { |
| if (_json.containsKey('bucketCounts')) { |
| bucketCounts = (_json['bucketCounts'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('count')) { |
| count = _json['count'] as core.String; |
| } |
| if (_json.containsKey('exemplars')) { |
| exemplars = (_json['exemplars'] as core.List) |
| .map<Exemplar>((value) => Exemplar.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('explicitBuckets')) { |
| explicitBuckets = ExplicitBuckets.fromJson(_json['explicitBuckets']); |
| } |
| if (_json.containsKey('exponentialBuckets')) { |
| exponentialBuckets = |
| ExponentialBuckets.fromJson(_json['exponentialBuckets']); |
| } |
| if (_json.containsKey('linearBuckets')) { |
| linearBuckets = LinearBuckets.fromJson(_json['linearBuckets']); |
| } |
| if (_json.containsKey('maximum')) { |
| maximum = (_json['maximum'] as core.num).toDouble(); |
| } |
| if (_json.containsKey('mean')) { |
| mean = (_json['mean'] as core.num).toDouble(); |
| } |
| if (_json.containsKey('minimum')) { |
| minimum = (_json['minimum'] as core.num).toDouble(); |
| } |
| if (_json.containsKey('sumOfSquaredDeviation')) { |
| sumOfSquaredDeviation = |
| (_json['sumOfSquaredDeviation'] as core.num).toDouble(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (bucketCounts != null) { |
| _json['bucketCounts'] = bucketCounts; |
| } |
| if (count != null) { |
| _json['count'] = count; |
| } |
| if (exemplars != null) { |
| _json['exemplars'] = exemplars.map((value) => value.toJson()).toList(); |
| } |
| if (explicitBuckets != null) { |
| _json['explicitBuckets'] = explicitBuckets.toJson(); |
| } |
| if (exponentialBuckets != null) { |
| _json['exponentialBuckets'] = exponentialBuckets.toJson(); |
| } |
| if (linearBuckets != null) { |
| _json['linearBuckets'] = linearBuckets.toJson(); |
| } |
| if (maximum != null) { |
| _json['maximum'] = maximum; |
| } |
| if (mean != null) { |
| _json['mean'] = mean; |
| } |
| if (minimum != null) { |
| _json['minimum'] = minimum; |
| } |
| if (sumOfSquaredDeviation != null) { |
| _json['sumOfSquaredDeviation'] = sumOfSquaredDeviation; |
| } |
| return _json; |
| } |
| } |
| |
| /// Exemplars are example points that may be used to annotate aggregated |
| /// distribution values. They are metadata that gives information about a |
| /// particular value added to a Distribution bucket, such as a trace ID that was |
| /// active when a value was added. They may contain further information, such as |
| /// a example values and timestamps, origin, etc. |
| class Exemplar { |
| /// Contextual information about the example value. Examples are: Trace: |
| /// type.googleapis.com/google.monitoring.v3.SpanContext Literal string: |
| /// type.googleapis.com/google.protobuf.StringValue Labels dropped during |
| /// aggregation: type.googleapis.com/google.monitoring.v3.DroppedLabels There |
| /// may be only a single attachment of any given message type in a single |
| /// exemplar, and this is enforced by the system. |
| /// |
| /// The values for Object must be JSON objects. It can consist of `num`, |
| /// `String`, `bool` and `null` as well as `Map` and `List` values. |
| core.List<core.Map<core.String, core.Object>> attachments; |
| |
| /// The observation (sampling) time of the above value. |
| core.String timestamp; |
| |
| /// Value of the exemplar point. This value determines to which bucket the |
| /// exemplar belongs. |
| core.double value; |
| |
| Exemplar(); |
| |
| Exemplar.fromJson(core.Map _json) { |
| if (_json.containsKey('attachments')) { |
| attachments = (_json['attachments'] as core.List) |
| .map<core.Map<core.String, core.Object>>((value) => |
| commons.mapMap<core.Object, core.Object>( |
| value.cast<core.String, core.Object>(), |
| (core.Object item) => item as core.Object)) |
| .toList(); |
| } |
| if (_json.containsKey('timestamp')) { |
| timestamp = _json['timestamp'] as core.String; |
| } |
| if (_json.containsKey('value')) { |
| value = (_json['value'] as core.num).toDouble(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (attachments != null) { |
| _json['attachments'] = attachments; |
| } |
| if (timestamp != null) { |
| _json['timestamp'] = timestamp; |
| } |
| if (value != null) { |
| _json['value'] = value; |
| } |
| return _json; |
| } |
| } |
| |
| /// Describing buckets with arbitrary user-provided width. |
| class ExplicitBuckets { |
| /// 'bound' is a list of strictly increasing boundaries between buckets. Note |
| /// that a list of length N-1 defines N buckets because of fenceposting. See |
| /// comments on `bucket_options` for details. The i'th finite bucket covers |
| /// the interval [bound[i-1], bound[i]) where i ranges from 1 to bound_size() |
| /// - 1. Note that there are no finite buckets at all if 'bound' only contains |
| /// a single element; in that special case the single bound defines the |
| /// boundary between the underflow and overflow buckets. bucket number lower |
| /// bound upper bound i == 0 (underflow) -inf bound[i] 0 < i < bound_size() |
| /// bound[i-1] bound[i] i == bound_size() (overflow) bound[i-1] +inf |
| core.List<core.double> bounds; |
| |
| ExplicitBuckets(); |
| |
| ExplicitBuckets.fromJson(core.Map _json) { |
| if (_json.containsKey('bounds')) { |
| bounds = (_json['bounds'] as core.List) |
| .map<core.double>((value) => (value as core.num).toDouble()) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (bounds != null) { |
| _json['bounds'] = bounds; |
| } |
| return _json; |
| } |
| } |
| |
| /// Describing buckets with exponentially growing width. |
| class ExponentialBuckets { |
| /// The i'th exponential bucket covers the interval [scale * |
| /// growth_factor^(i-1), scale * growth_factor^i) where i ranges from 1 to |
| /// num_finite_buckets inclusive. Must be larger than 1.0. |
| core.double growthFactor; |
| |
| /// The number of finite buckets. With the underflow and overflow buckets, the |
| /// total number of buckets is `num_finite_buckets` + 2. See comments on |
| /// `bucket_options` for details. |
| core.int numFiniteBuckets; |
| |
| /// The i'th exponential bucket covers the interval [scale * |
| /// growth_factor^(i-1), scale * growth_factor^i) where i ranges from 1 to |
| /// num_finite_buckets inclusive. Must be > 0. |
| core.double scale; |
| |
| ExponentialBuckets(); |
| |
| ExponentialBuckets.fromJson(core.Map _json) { |
| if (_json.containsKey('growthFactor')) { |
| growthFactor = (_json['growthFactor'] as core.num).toDouble(); |
| } |
| if (_json.containsKey('numFiniteBuckets')) { |
| numFiniteBuckets = _json['numFiniteBuckets'] as core.int; |
| } |
| if (_json.containsKey('scale')) { |
| scale = (_json['scale'] as core.num).toDouble(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (growthFactor != null) { |
| _json['growthFactor'] = growthFactor; |
| } |
| if (numFiniteBuckets != null) { |
| _json['numFiniteBuckets'] = numFiniteBuckets; |
| } |
| if (scale != null) { |
| _json['scale'] = scale; |
| } |
| return _json; |
| } |
| } |
| |
| /// First party identity principal. |
| class FirstPartyPrincipal { |
| /// The email address of a Google account. . |
| core.String principalEmail; |
| |
| /// Metadata about the service that uses the service account. . |
| /// |
| /// The values for Object must be JSON objects. It can consist of `num`, |
| /// `String`, `bool` and `null` as well as `Map` and `List` values. |
| core.Map<core.String, core.Object> serviceMetadata; |
| |
| FirstPartyPrincipal(); |
| |
| FirstPartyPrincipal.fromJson(core.Map _json) { |
| if (_json.containsKey('principalEmail')) { |
| principalEmail = _json['principalEmail'] as core.String; |
| } |
| if (_json.containsKey('serviceMetadata')) { |
| serviceMetadata = commons.mapMap<core.Object, core.Object>( |
| _json['serviceMetadata'].cast<core.String, core.Object>(), |
| (core.Object item) => item as core.Object); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (principalEmail != null) { |
| _json['principalEmail'] = principalEmail; |
| } |
| if (serviceMetadata != null) { |
| _json['serviceMetadata'] = serviceMetadata; |
| } |
| return _json; |
| } |
| } |
| |
| /// A common proto for logging HTTP requests. Only contains semantics defined by |
| /// the HTTP specification. Product-specific logging information MUST be defined |
| /// in a separate message. |
| class HttpRequest { |
| /// The number of HTTP response bytes inserted into cache. Set only when a |
| /// cache fill was attempted. |
| core.String cacheFillBytes; |
| |
| /// Whether or not an entity was served from cache (with or without |
| /// validation). |
| core.bool cacheHit; |
| |
| /// Whether or not a cache lookup was attempted. |
| core.bool cacheLookup; |
| |
| /// Whether or not the response was validated with the origin server before |
| /// being served from cache. This field is only meaningful if `cache_hit` is |
| /// True. |
| core.bool cacheValidatedWithOriginServer; |
| |
| /// The request processing latency on the server, from the time the request |
| /// was received until the response was sent. |
| core.String latency; |
| |
| /// Protocol used for the request. Examples: "HTTP/1.1", "HTTP/2", "websocket" |
| core.String protocol; |
| |
| /// The referer URL of the request, as defined in [HTTP/1.1 Header Field |
| /// Definitions](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html). |
| core.String referer; |
| |
| /// The IP address (IPv4 or IPv6) of the client that issued the HTTP request. |
| /// Examples: `"192.168.1.1"`, `"FE80::0202:B3FF:FE1E:8329"`. |
| core.String remoteIp; |
| |
| /// The request method. Examples: `"GET"`, `"HEAD"`, `"PUT"`, `"POST"`. |
| core.String requestMethod; |
| |
| /// The size of the HTTP request message in bytes, including the request |
| /// headers and the request body. |
| core.String requestSize; |
| |
| /// The scheme (http, https), the host name, the path, and the query portion |
| /// of the URL that was requested. Example: |
| /// `"http://example.com/some/info?color=red"`. |
| core.String requestUrl; |
| |
| /// The size of the HTTP response message sent back to the client, in bytes, |
| /// including the response headers and the response body. |
| core.String responseSize; |
| |
| /// The IP address (IPv4 or IPv6) of the origin server that the request was |
| /// sent to. |
| core.String serverIp; |
| |
| /// The response code indicating the status of the response. Examples: 200, |
| /// 404. |
| core.int status; |
| |
| /// The user agent sent by the client. Example: `"Mozilla/4.0 (compatible; |
| /// MSIE 6.0; Windows 98; Q312461; .NET CLR 1.0.3705)"`. |
| core.String userAgent; |
| |
| HttpRequest(); |
| |
| HttpRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('cacheFillBytes')) { |
| cacheFillBytes = _json['cacheFillBytes'] as core.String; |
| } |
| if (_json.containsKey('cacheHit')) { |
| cacheHit = _json['cacheHit'] as core.bool; |
| } |
| if (_json.containsKey('cacheLookup')) { |
| cacheLookup = _json['cacheLookup'] as core.bool; |
| } |
| if (_json.containsKey('cacheValidatedWithOriginServer')) { |
| cacheValidatedWithOriginServer = |
| _json['cacheValidatedWithOriginServer'] as core.bool; |
| } |
| if (_json.containsKey('latency')) { |
| latency = _json['latency'] as core.String; |
| } |
| if (_json.containsKey('protocol')) { |
| protocol = _json['protocol'] as core.String; |
| } |
| if (_json.containsKey('referer')) { |
| referer = _json['referer'] as core.String; |
| } |
| if (_json.containsKey('remoteIp')) { |
| remoteIp = _json['remoteIp'] as core.String; |
| } |
| if (_json.containsKey('requestMethod')) { |
| requestMethod = _json['requestMethod'] as core.String; |
| } |
| if (_json.containsKey('requestSize')) { |
| requestSize = _json['requestSize'] as core.String; |
| } |
| if (_json.containsKey('requestUrl')) { |
| requestUrl = _json['requestUrl'] as core.String; |
| } |
| if (_json.containsKey('responseSize')) { |
| responseSize = _json['responseSize'] as core.String; |
| } |
| if (_json.containsKey('serverIp')) { |
| serverIp = _json['serverIp'] as core.String; |
| } |
| if (_json.containsKey('status')) { |
| status = _json['status'] as core.int; |
| } |
| if (_json.containsKey('userAgent')) { |
| userAgent = _json['userAgent'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (cacheFillBytes != null) { |
| _json['cacheFillBytes'] = cacheFillBytes; |
| } |
| if (cacheHit != null) { |
| _json['cacheHit'] = cacheHit; |
| } |
| if (cacheLookup != null) { |
| _json['cacheLookup'] = cacheLookup; |
| } |
| if (cacheValidatedWithOriginServer != null) { |
| _json['cacheValidatedWithOriginServer'] = cacheValidatedWithOriginServer; |
| } |
| if (latency != null) { |
| _json['latency'] = latency; |
| } |
| if (protocol != null) { |
| _json['protocol'] = protocol; |
| } |
| if (referer != null) { |
| _json['referer'] = referer; |
| } |
| if (remoteIp != null) { |
| _json['remoteIp'] = remoteIp; |
| } |
| if (requestMethod != null) { |
| _json['requestMethod'] = requestMethod; |
| } |
| if (requestSize != null) { |
| _json['requestSize'] = requestSize; |
| } |
| if (requestUrl != null) { |
| _json['requestUrl'] = requestUrl; |
| } |
| if (responseSize != null) { |
| _json['responseSize'] = responseSize; |
| } |
| if (serverIp != null) { |
| _json['serverIp'] = serverIp; |
| } |
| if (status != null) { |
| _json['status'] = status; |
| } |
| if (userAgent != null) { |
| _json['userAgent'] = userAgent; |
| } |
| return _json; |
| } |
| } |
| |
| /// Describing buckets with constant width. |
| class LinearBuckets { |
| /// The number of finite buckets. With the underflow and overflow buckets, the |
| /// total number of buckets is `num_finite_buckets` + 2. See comments on |
| /// `bucket_options` for details. |
| core.int numFiniteBuckets; |
| |
| /// The i'th linear bucket covers the interval [offset + (i-1) * width, offset |
| /// + i * width) where i ranges from 1 to num_finite_buckets, inclusive. |
| core.double offset; |
| |
| /// The i'th linear bucket covers the interval [offset + (i-1) * width, offset |
| /// + i * width) where i ranges from 1 to num_finite_buckets, inclusive. Must |
| /// be strictly positive. |
| core.double width; |
| |
| LinearBuckets(); |
| |
| LinearBuckets.fromJson(core.Map _json) { |
| if (_json.containsKey('numFiniteBuckets')) { |
| numFiniteBuckets = _json['numFiniteBuckets'] as core.int; |
| } |
| if (_json.containsKey('offset')) { |
| offset = (_json['offset'] as core.num).toDouble(); |
| } |
| if (_json.containsKey('width')) { |
| width = (_json['width'] as core.num).toDouble(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (numFiniteBuckets != null) { |
| _json['numFiniteBuckets'] = numFiniteBuckets; |
| } |
| if (offset != null) { |
| _json['offset'] = offset; |
| } |
| if (width != null) { |
| _json['width'] = width; |
| } |
| return _json; |
| } |
| } |
| |
| /// An individual log entry. |
| class LogEntry { |
| /// Optional. Information about the HTTP request associated with this log |
| /// entry, if applicable. |
| HttpRequest httpRequest; |
| |
| /// A unique ID for the log entry used for deduplication. If omitted, the |
| /// implementation will generate one based on operation_id. |
| core.String insertId; |
| |
| /// A set of user-defined (key, value) data that provides additional |
| /// information about the log entry. |
| core.Map<core.String, core.String> labels; |
| |
| /// Required. The log to which this log entry belongs. Examples: `"syslog"`, |
| /// `"book_log"`. |
| core.String name; |
| |
| /// Optional. Information about an operation associated with the log entry, if |
| /// applicable. |
| LogEntryOperation operation; |
| |
| /// The log entry payload, represented as a protocol buffer that is expressed |
| /// as a JSON object. The only accepted type currently is AuditLog. |
| /// |
| /// The values for Object must be JSON objects. It can consist of `num`, |
| /// `String`, `bool` and `null` as well as `Map` and `List` values. |
| core.Map<core.String, core.Object> protoPayload; |
| |
| /// The severity of the log entry. The default value is `LogSeverity.DEFAULT`. |
| /// Possible string values are: |
| /// - "DEFAULT" : (0) The log entry has no assigned severity level. |
| /// - "DEBUG" : (100) Debug or trace information. |
| /// - "INFO" : (200) Routine information, such as ongoing status or |
| /// performance. |
| /// - "NOTICE" : (300) Normal but significant events, such as start up, shut |
| /// down, or a configuration change. |
| /// - "WARNING" : (400) Warning events might cause problems. |
| /// - "ERROR" : (500) Error events are likely to cause problems. |
| /// - "CRITICAL" : (600) Critical events cause more severe problems or |
| /// outages. |
| /// - "ALERT" : (700) A person must take an action immediately. |
| /// - "EMERGENCY" : (800) One or more systems are unusable. |
| core.String severity; |
| |
| /// Optional. Source code location information associated with the log entry, |
| /// if any. |
| LogEntrySourceLocation sourceLocation; |
| |
| /// The log entry payload, represented as a structure that is expressed as a |
| /// JSON object. |
| /// |
| /// The values for Object must be JSON objects. It can consist of `num`, |
| /// `String`, `bool` and `null` as well as `Map` and `List` values. |
| core.Map<core.String, core.Object> structPayload; |
| |
| /// The log entry payload, represented as a Unicode string (UTF-8). |
| core.String textPayload; |
| |
| /// The time the event described by the log entry occurred. If omitted, |
| /// defaults to operation start time. |
| core.String timestamp; |
| |
| /// Optional. Resource name of the trace associated with the log entry, if |
| /// any. If this field contains a relative resource name, you can assume the |
| /// name is relative to `//tracing.googleapis.com`. Example: |
| /// `projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824` |
| core.String trace; |
| |
| LogEntry(); |
| |
| LogEntry.fromJson(core.Map _json) { |
| if (_json.containsKey('httpRequest')) { |
| httpRequest = HttpRequest.fromJson(_json['httpRequest']); |
| } |
| if (_json.containsKey('insertId')) { |
| insertId = _json['insertId'] as core.String; |
| } |
| if (_json.containsKey('labels')) { |
| labels = commons.mapMap<core.String, core.String>( |
| _json['labels'].cast<core.String, core.String>(), |
| (core.String item) => item as core.String); |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('operation')) { |
| operation = LogEntryOperation.fromJson(_json['operation']); |
| } |
| if (_json.containsKey('protoPayload')) { |
| protoPayload = commons.mapMap<core.Object, core.Object>( |
| _json['protoPayload'].cast<core.String, core.Object>(), |
| (core.Object item) => item as core.Object); |
| } |
| if (_json.containsKey('severity')) { |
| severity = _json['severity'] as core.String; |
| } |
| if (_json.containsKey('sourceLocation')) { |
| sourceLocation = LogEntrySourceLocation.fromJson(_json['sourceLocation']); |
| } |
| if (_json.containsKey('structPayload')) { |
| structPayload = commons.mapMap<core.Object, core.Object>( |
| _json['structPayload'].cast<core.String, core.Object>(), |
| (core.Object item) => item as core.Object); |
| } |
| if (_json.containsKey('textPayload')) { |
| textPayload = _json['textPayload'] as core.String; |
| } |
| if (_json.containsKey('timestamp')) { |
| timestamp = _json['timestamp'] as core.String; |
| } |
| if (_json.containsKey('trace')) { |
| trace = _json['trace'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (httpRequest != null) { |
| _json['httpRequest'] = httpRequest.toJson(); |
| } |
| if (insertId != null) { |
| _json['insertId'] = insertId; |
| } |
| if (labels != null) { |
| _json['labels'] = labels; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (operation != null) { |
| _json['operation'] = operation.toJson(); |
| } |
| if (protoPayload != null) { |
| _json['protoPayload'] = protoPayload; |
| } |
| if (severity != null) { |
| _json['severity'] = severity; |
| } |
| if (sourceLocation != null) { |
| _json['sourceLocation'] = sourceLocation.toJson(); |
| } |
| if (structPayload != null) { |
| _json['structPayload'] = structPayload; |
| } |
| if (textPayload != null) { |
| _json['textPayload'] = textPayload; |
| } |
| if (timestamp != null) { |
| _json['timestamp'] = timestamp; |
| } |
| if (trace != null) { |
| _json['trace'] = trace; |
| } |
| return _json; |
| } |
| } |
| |
| /// Additional information about a potentially long-running operation with which |
| /// a log entry is associated. |
| class LogEntryOperation { |
| /// Optional. Set this to True if this is the first log entry in the |
| /// operation. |
| core.bool first; |
| |
| /// Optional. An arbitrary operation identifier. Log entries with the same |
| /// identifier are assumed to be part of the same operation. |
| core.String id; |
| |
| /// Optional. Set this to True if this is the last log entry in the operation. |
| core.bool last; |
| |
| /// Optional. An arbitrary producer identifier. The combination of `id` and |
| /// `producer` must be globally unique. Examples for `producer`: |
| /// `"MyDivision.MyBigCompany.com"`, `"github.com/MyProject/MyApplication"`. |
| core.String producer; |
| |
| LogEntryOperation(); |
| |
| LogEntryOperation.fromJson(core.Map _json) { |
| if (_json.containsKey('first')) { |
| first = _json['first'] as core.bool; |
| } |
| if (_json.containsKey('id')) { |
| id = _json['id'] as core.String; |
| } |
| if (_json.containsKey('last')) { |
| last = _json['last'] as core.bool; |
| } |
| if (_json.containsKey('producer')) { |
| producer = _json['producer'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (first != null) { |
| _json['first'] = first; |
| } |
| if (id != null) { |
| _json['id'] = id; |
| } |
| if (last != null) { |
| _json['last'] = last; |
| } |
| if (producer != null) { |
| _json['producer'] = producer; |
| } |
| return _json; |
| } |
| } |
| |
| /// Additional information about the source code location that produced the log |
| /// entry. |
| class LogEntrySourceLocation { |
| /// Optional. Source file name. Depending on the runtime environment, this |
| /// might be a simple name or a fully-qualified name. |
| core.String file; |
| |
| /// Optional. Human-readable name of the function or method being invoked, |
| /// with optional context such as the class or package name. This information |
| /// may be used in contexts such as the logs viewer, where a file and line |
| /// number are less meaningful. The format can vary by language. For example: |
| /// `qual.if.ied.Class.method` (Java), `dir/package.func` (Go), `function` |
| /// (Python). |
| core.String function; |
| |
| /// Optional. Line within the source file. 1-based; 0 indicates no line number |
| /// available. |
| core.String line; |
| |
| LogEntrySourceLocation(); |
| |
| LogEntrySourceLocation.fromJson(core.Map _json) { |
| if (_json.containsKey('file')) { |
| file = _json['file'] as core.String; |
| } |
| if (_json.containsKey('function')) { |
| function = _json['function'] as core.String; |
| } |
| if (_json.containsKey('line')) { |
| line = _json['line'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (file != null) { |
| _json['file'] = file; |
| } |
| if (function != null) { |
| _json['function'] = function; |
| } |
| if (line != null) { |
| _json['line'] = line; |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents a single metric value. |
| class MetricValue { |
| /// A boolean value. |
| core.bool boolValue; |
| |
| /// A distribution value. |
| Distribution distributionValue; |
| |
| /// A double precision floating point value. |
| core.double doubleValue; |
| |
| /// The end of the time period over which this metric value's measurement |
| /// applies. |
| core.String endTime; |
| |
| /// A signed 64-bit integer value. |
| core.String int64Value; |
| |
| /// The labels describing the metric value. See comments on |
| /// google.api.servicecontrol.v1.Operation.labels for the overriding |
| /// relationship. Note that this map must not contain monitored resource |
| /// labels. |
| core.Map<core.String, core.String> labels; |
| |
| /// A money value. |
| Money moneyValue; |
| |
| /// The start of the time period over which this metric value's measurement |
| /// applies. The time period has different semantics for different metric |
| /// types (cumulative, delta, and gauge). See the metric definition |
| /// documentation in the service configuration for details. |
| core.String startTime; |
| |
| /// A text string value. |
| core.String stringValue; |
| |
| MetricValue(); |
| |
| MetricValue.fromJson(core.Map _json) { |
| if (_json.containsKey('boolValue')) { |
| boolValue = _json['boolValue'] as core.bool; |
| } |
| if (_json.containsKey('distributionValue')) { |
| distributionValue = Distribution.fromJson(_json['distributionValue']); |
| } |
| if (_json.containsKey('doubleValue')) { |
| doubleValue = (_json['doubleValue'] as core.num).toDouble(); |
| } |
| if (_json.containsKey('endTime')) { |
| endTime = _json['endTime'] as core.String; |
| } |
| if (_json.containsKey('int64Value')) { |
| int64Value = _json['int64Value'] as core.String; |
| } |
| if (_json.containsKey('labels')) { |
| labels = commons.mapMap<core.String, core.String>( |
| _json['labels'].cast<core.String, core.String>(), |
| (core.String item) => item as core.String); |
| } |
| if (_json.containsKey('moneyValue')) { |
| moneyValue = Money.fromJson(_json['moneyValue']); |
| } |
| if (_json.containsKey('startTime')) { |
| startTime = _json['startTime'] as core.String; |
| } |
| if (_json.containsKey('stringValue')) { |
| stringValue = _json['stringValue'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (boolValue != null) { |
| _json['boolValue'] = boolValue; |
| } |
| if (distributionValue != null) { |
| _json['distributionValue'] = distributionValue.toJson(); |
| } |
| if (doubleValue != null) { |
| _json['doubleValue'] = doubleValue; |
| } |
| if (endTime != null) { |
| _json['endTime'] = endTime; |
| } |
| if (int64Value != null) { |
| _json['int64Value'] = int64Value; |
| } |
| if (labels != null) { |
| _json['labels'] = labels; |
| } |
| if (moneyValue != null) { |
| _json['moneyValue'] = moneyValue.toJson(); |
| } |
| if (startTime != null) { |
| _json['startTime'] = startTime; |
| } |
| if (stringValue != null) { |
| _json['stringValue'] = stringValue; |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents a set of metric values in the same metric. Each metric value in |
| /// the set should have a unique combination of start time, end time, and label |
| /// values. |
| class MetricValueSet { |
| /// The metric name defined in the service configuration. |
| core.String metricName; |
| |
| /// The values in this metric. |
| core.List<MetricValue> metricValues; |
| |
| MetricValueSet(); |
| |
| MetricValueSet.fromJson(core.Map _json) { |
| if (_json.containsKey('metricName')) { |
| metricName = _json['metricName'] as core.String; |
| } |
| if (_json.containsKey('metricValues')) { |
| metricValues = (_json['metricValues'] as core.List) |
| .map<MetricValue>((value) => MetricValue.fromJson(value)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (metricName != null) { |
| _json['metricName'] = metricName; |
| } |
| if (metricValues != null) { |
| _json['metricValues'] = |
| metricValues.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents an amount of money with its currency type. |
| class Money { |
| /// The 3-letter currency code defined in ISO 4217. |
| core.String currencyCode; |
| |
| /// Number of nano (10^-9) units of the amount. The value must be between |
| /// -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` |
| /// must be positive or zero. If `units` is zero, `nanos` can be positive, |
| /// zero, or negative. If `units` is negative, `nanos` must be negative or |
| /// zero. For example $-1.75 is represented as `units`=-1 and |
| /// `nanos`=-750,000,000. |
| core.int nanos; |
| |
| /// The whole units of the amount. For example if `currencyCode` is `"USD"`, |
| /// then 1 unit is one US dollar. |
| core.String units; |
| |
| Money(); |
| |
| Money.fromJson(core.Map _json) { |
| if (_json.containsKey('currencyCode')) { |
| currencyCode = _json['currencyCode'] as core.String; |
| } |
| if (_json.containsKey('nanos')) { |
| nanos = _json['nanos'] as core.int; |
| } |
| if (_json.containsKey('units')) { |
| units = _json['units'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (currencyCode != null) { |
| _json['currencyCode'] = currencyCode; |
| } |
| if (nanos != null) { |
| _json['nanos'] = nanos; |
| } |
| if (units != null) { |
| _json['units'] = units; |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents information regarding an operation. |
| class Operation { |
| /// Identity of the consumer who is using the service. This field should be |
| /// filled in for the operations initiated by a consumer, but not for |
| /// service-initiated operations that are not related to a specific consumer. |
| /// - This can be in one of the following formats: - project:PROJECT_ID, - |
| /// project`_`number:PROJECT_NUMBER, - projects/PROJECT_ID or PROJECT_NUMBER, |
| /// - folders/FOLDER_NUMBER, - organizations/ORGANIZATION_NUMBER, - |
| /// api`_`key:API_KEY. |
| core.String consumerId; |
| |
| /// End time of the operation. Required when the operation is used in |
| /// ServiceController.Report, but optional when the operation is used in |
| /// ServiceController.Check. |
| core.String endTime; |
| |
| /// Unimplemented. |
| /// |
| /// The values for Object must be JSON objects. It can consist of `num`, |
| /// `String`, `bool` and `null` as well as `Map` and `List` values. |
| core.List<core.Map<core.String, core.Object>> extensions; |
| |
| /// DO NOT USE. This is an experimental field. |
| /// Possible string values are: |
| /// - "LOW" : The API implementation may cache and aggregate the data. The |
| /// data may be lost when rare and unexpected system failures occur. |
| /// - "HIGH" : The API implementation doesn't cache and aggregate the data. If |
| /// the method returns successfully, it's guaranteed that the data has been |
| /// persisted in durable storage. |
| /// - "DEBUG" : In addition to the behavior described in HIGH, DEBUG enables |
| /// additional validation logic that is only useful during the onboarding |
| /// process. This is only available to Google internal services and the |
| /// service must be whitelisted by chemist-dev@google.com in order to use this |
| /// level. |
| core.String importance; |
| |
| /// Labels describing the operation. Only the following labels are allowed: - |
| /// Labels describing monitored resources as defined in the service |
| /// configuration. - Default labels of metric values. When specified, labels |
| /// defined in the metric value override these default. - The following labels |
| /// defined by Google Cloud Platform: - `cloud.googleapis.com/location` |
| /// describing the location where the operation happened, - |
| /// `servicecontrol.googleapis.com/user_agent` describing the user agent of |
| /// the API request, - `servicecontrol.googleapis.com/service_agent` |
| /// describing the service used to handle the API request (e.g. ESP), - |
| /// `servicecontrol.googleapis.com/platform` describing the platform where the |
| /// API is served, such as App Engine, Compute Engine, or Kubernetes Engine. |
| core.Map<core.String, core.String> labels; |
| |
| /// Represents information to be logged. |
| core.List<LogEntry> logEntries; |
| |
| /// Represents information about this operation. Each MetricValueSet |
| /// corresponds to a metric defined in the service configuration. The data |
| /// type used in the MetricValueSet must agree with the data type specified in |
| /// the metric definition. Within a single operation, it is not allowed to |
| /// have more than one MetricValue instances that have the same metric names |
| /// and identical label value combinations. If a request has such duplicated |
| /// MetricValue instances, the entire request is rejected with an invalid |
| /// argument error. |
| core.List<MetricValueSet> metricValueSets; |
| |
| /// Identity of the operation. This must be unique within the scope of the |
| /// service that generated the operation. If the service calls Check() and |
| /// Report() on the same operation, the two calls should carry the same id. |
| /// UUID version 4 is recommended, though not required. In scenarios where an |
| /// operation is computed from existing information and an idempotent id is |
| /// desirable for deduplication purpose, UUID version 5 is recommended. See |
| /// RFC 4122 for details. |
| core.String operationId; |
| |
| /// Fully qualified name of the operation. Reserved for future use. |
| core.String operationName; |
| |
| /// Represents the properties needed for quota check. Applicable only if this |
| /// operation is for a quota check request. If this is not specified, no quota |
| /// check will be performed. |
| QuotaProperties quotaProperties; |
| |
| /// The resources that are involved in the operation. The maximum supported |
| /// number of entries in this field is 100. |
| core.List<ResourceInfo> resources; |
| |
| /// Required. Start time of the operation. |
| core.String startTime; |
| |
| /// Unimplemented. A list of Cloud Trace spans. The span names shall contain |
| /// the id of the destination project which can be either the produce or the |
| /// consumer project. |
| core.List<TraceSpan> traceSpans; |
| |
| /// User defined labels for the resource that this operation is associated |
| /// with. Only a combination of 1000 user labels per consumer project are |
| /// allowed. |
| core.Map<core.String, core.String> userLabels; |
| |
| Operation(); |
| |
| Operation.fromJson(core.Map _json) { |
| if (_json.containsKey('consumerId')) { |
| consumerId = _json['consumerId'] as core.String; |
| } |
| if (_json.containsKey('endTime')) { |
| endTime = _json['endTime'] as core.String; |
| } |
| if (_json.containsKey('extensions')) { |
| extensions = (_json['extensions'] as core.List) |
| .map<core.Map<core.String, core.Object>>((value) => |
| commons.mapMap<core.Object, core.Object>( |
| value.cast<core.String, core.Object>(), |
| (core.Object item) => item as core.Object)) |
| .toList(); |
| } |
| if (_json.containsKey('importance')) { |
| importance = _json['importance'] as core.String; |
| } |
| if (_json.containsKey('labels')) { |
| labels = commons.mapMap<core.String, core.String>( |
| _json['labels'].cast<core.String, core.String>(), |
| (core.String item) => item as core.String); |
| } |
| if (_json.containsKey('logEntries')) { |
| logEntries = (_json['logEntries'] as core.List) |
| .map<LogEntry>((value) => LogEntry.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('metricValueSets')) { |
| metricValueSets = (_json['metricValueSets'] as core.List) |
| .map<MetricValueSet>((value) => MetricValueSet.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('operationId')) { |
| operationId = _json['operationId'] as core.String; |
| } |
| if (_json.containsKey('operationName')) { |
| operationName = _json['operationName'] as core.String; |
| } |
| if (_json.containsKey('quotaProperties')) { |
| quotaProperties = QuotaProperties.fromJson(_json['quotaProperties']); |
| } |
| if (_json.containsKey('resources')) { |
| resources = (_json['resources'] as core.List) |
| .map<ResourceInfo>((value) => ResourceInfo.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('startTime')) { |
| startTime = _json['startTime'] as core.String; |
| } |
| if (_json.containsKey('traceSpans')) { |
| traceSpans = (_json['traceSpans'] as core.List) |
| .map<TraceSpan>((value) => TraceSpan.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('userLabels')) { |
| userLabels = commons.mapMap<core.String, core.String>( |
| _json['userLabels'].cast<core.String, core.String>(), |
| (core.String item) => item as core.String); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (consumerId != null) { |
| _json['consumerId'] = consumerId; |
| } |
| if (endTime != null) { |
| _json['endTime'] = endTime; |
| } |
| if (extensions != null) { |
| _json['extensions'] = extensions; |
| } |
| if (importance != null) { |
| _json['importance'] = importance; |
| } |
| if (labels != null) { |
| _json['labels'] = labels; |
| } |
| if (logEntries != null) { |
| _json['logEntries'] = logEntries.map((value) => value.toJson()).toList(); |
| } |
| if (metricValueSets != null) { |
| _json['metricValueSets'] = |
| metricValueSets.map((value) => value.toJson()).toList(); |
| } |
| if (operationId != null) { |
| _json['operationId'] = operationId; |
| } |
| if (operationName != null) { |
| _json['operationName'] = operationName; |
| } |
| if (quotaProperties != null) { |
| _json['quotaProperties'] = quotaProperties.toJson(); |
| } |
| if (resources != null) { |
| _json['resources'] = resources.map((value) => value.toJson()).toList(); |
| } |
| if (startTime != null) { |
| _json['startTime'] = startTime; |
| } |
| if (traceSpans != null) { |
| _json['traceSpans'] = traceSpans.map((value) => value.toJson()).toList(); |
| } |
| if (userLabels != null) { |
| _json['userLabels'] = userLabels; |
| } |
| return _json; |
| } |
| } |
| |
| /// This message defines attributes for a node that handles a network request. |
| /// The node can be either a service or an application that sends, forwards, or |
| /// receives the request. Service peers should fill in `principal` and `labels` |
| /// as appropriate. |
| class Peer { |
| /// The IP address of the peer. |
| core.String ip; |
| |
| /// The labels associated with the peer. |
| core.Map<core.String, core.String> labels; |
| |
| /// The network port of the peer. |
| core.String port; |
| |
| /// The identity of this peer. Similar to `Request.auth.principal`, but |
| /// relative to the peer instead of the request. For example, the idenity |
| /// associated with a load balancer that forwared the request. |
| core.String principal; |
| |
| /// The CLDR country/region code associated with the above IP address. If the |
| /// IP address is private, the `region_code` should reflect the physical |
| /// location where this peer is running. |
| core.String regionCode; |
| |
| Peer(); |
| |
| Peer.fromJson(core.Map _json) { |
| if (_json.containsKey('ip')) { |
| ip = _json['ip'] as core.String; |
| } |
| if (_json.containsKey('labels')) { |
| labels = commons.mapMap<core.String, core.String>( |
| _json['labels'].cast<core.String, core.String>(), |
| (core.String item) => item as core.String); |
| } |
| if (_json.containsKey('port')) { |
| port = _json['port'] as core.String; |
| } |
| if (_json.containsKey('principal')) { |
| principal = _json['principal'] as core.String; |
| } |
| if (_json.containsKey('regionCode')) { |
| regionCode = _json['regionCode'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (ip != null) { |
| _json['ip'] = ip; |
| } |
| if (labels != null) { |
| _json['labels'] = labels; |
| } |
| if (port != null) { |
| _json['port'] = port; |
| } |
| if (principal != null) { |
| _json['principal'] = principal; |
| } |
| if (regionCode != null) { |
| _json['regionCode'] = regionCode; |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents error information for QuotaOperation. |
| class QuotaError { |
| /// Error code. |
| /// Possible string values are: |
| /// - "UNSPECIFIED" : This is never used. |
| /// - "RESOURCE_EXHAUSTED" : Quota allocation failed. Same as |
| /// google.rpc.Code.RESOURCE_EXHAUSTED. |
| /// - "OUT_OF_RANGE" : Quota release failed. This error is ONLY returned on a |
| /// NORMAL release. More formally: if a user requests a release of 10 tokens, |
| /// but only 5 tokens were previously allocated, in a BEST_EFFORT release, |
| /// this will be considered a success, 5 tokens will be released, and the |
| /// result will be "Ok". If this is done in NORMAL mode, no tokens will be |
| /// released, and an OUT_OF_RANGE error will be returned. Same as |
| /// google.rpc.Code.OUT_OF_RANGE. |
| /// - "BILLING_NOT_ACTIVE" : Consumer cannot access the service because the |
| /// service requires active billing. |
| /// - "PROJECT_DELETED" : Consumer's project has been marked as deleted (soft |
| /// deletion). |
| /// - "API_KEY_INVALID" : Specified API key is invalid. |
| /// - "API_KEY_EXPIRED" : Specified API Key has expired. |
| /// - "SPATULA_HEADER_INVALID" : Consumer's spatula header is invalid. |
| /// - "LOAS_ROLE_INVALID" : The consumer's LOAS role is invalid. |
| /// - "NO_LOAS_PROJECT" : The consumer's LOAS role has no associated project. |
| /// - "PROJECT_STATUS_UNAVAILABLE" : The backend server for looking up project |
| /// id/number is unavailable. |
| /// - "SERVICE_STATUS_UNAVAILABLE" : The backend server for checking service |
| /// status is unavailable. |
| /// - "BILLING_STATUS_UNAVAILABLE" : The backend server for checking billing |
| /// status is unavailable. |
| /// - "QUOTA_SYSTEM_UNAVAILABLE" : The backend server for checking quota |
| /// limits is unavailable. |
| core.String code; |
| |
| /// Free-form text that provides details on the cause of the error. |
| core.String description; |
| |
| /// Subject to whom this error applies. See the specific enum for more details |
| /// on this field. For example, "clientip:" or "project:". |
| core.String subject; |
| |
| QuotaError(); |
| |
| QuotaError.fromJson(core.Map _json) { |
| if (_json.containsKey('code')) { |
| code = _json['code'] as core.String; |
| } |
| if (_json.containsKey('description')) { |
| description = _json['description'] as core.String; |
| } |
| if (_json.containsKey('subject')) { |
| subject = _json['subject'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (code != null) { |
| _json['code'] = code; |
| } |
| if (description != null) { |
| _json['description'] = description; |
| } |
| if (subject != null) { |
| _json['subject'] = subject; |
| } |
| return _json; |
| } |
| } |
| |
| /// Contains the quota information for a quota check response. |
| class QuotaInfo { |
| /// Quota Metrics that have exceeded quota limits. For QuotaGroup-based quota, |
| /// this is QuotaGroup.name For QuotaLimit-based quota, this is |
| /// QuotaLimit.name See: google.api.Quota Deprecated: Use quota_metrics to get |
| /// per quota group limit exceeded status. |
| core.List<core.String> limitExceeded; |
| |
| /// Map of quota group name to the actual number of tokens consumed. If the |
| /// quota check was not successful, then this will not be populated due to no |
| /// quota consumption. We are not merging this field with 'quota_metrics' |
| /// field because of the complexity of scaling in Chemist client code base. |
| /// For simplicity, we will keep this field for Castor (that scales quota |
| /// usage) and 'quota_metrics' for SuperQuota (that doesn't scale quota |
| /// usage). |
| core.Map<core.String, core.int> quotaConsumed; |
| |
| /// Quota metrics to indicate the usage. Depending on the check request, one |
| /// or more of the following metrics will be included: 1. For rate quota, per |
| /// quota group or per quota metric incremental usage will be specified using |
| /// the following delta metric: |
| /// "serviceruntime.googleapis.com/api/consumer/quota_used_count" 2. For |
| /// allocation quota, per quota metric total usage will be specified using the |
| /// following gauge metric: |
| /// "serviceruntime.googleapis.com/allocation/consumer/quota_used_count" 3. |
| /// For both rate quota and allocation quota, the quota limit reached |
| /// condition will be specified using the following boolean metric: |
| /// "serviceruntime.googleapis.com/quota/exceeded" |
| core.List<MetricValueSet> quotaMetrics; |
| |
| QuotaInfo(); |
| |
| QuotaInfo.fromJson(core.Map _json) { |
| if (_json.containsKey('limitExceeded')) { |
| limitExceeded = (_json['limitExceeded'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('quotaConsumed')) { |
| quotaConsumed = commons.mapMap<core.int, core.int>( |
| _json['quotaConsumed'].cast<core.String, core.int>(), |
| (core.int item) => item as core.int); |
| } |
| if (_json.containsKey('quotaMetrics')) { |
| quotaMetrics = (_json['quotaMetrics'] as core.List) |
| .map<MetricValueSet>((value) => MetricValueSet.fromJson(value)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (limitExceeded != null) { |
| _json['limitExceeded'] = limitExceeded; |
| } |
| if (quotaConsumed != null) { |
| _json['quotaConsumed'] = quotaConsumed; |
| } |
| if (quotaMetrics != null) { |
| _json['quotaMetrics'] = |
| quotaMetrics.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents information regarding a quota operation. |
| class QuotaOperation { |
| /// Identity of the consumer for whom this quota operation is being performed. |
| /// This can be in one of the following formats: project:, project_number:, |
| /// api_key:. |
| core.String consumerId; |
| |
| /// Labels describing the operation. |
| core.Map<core.String, core.String> labels; |
| |
| /// Fully qualified name of the API method for which this quota operation is |
| /// requested. This name is used for matching quota rules or metric rules and |
| /// billing status rules defined in service configuration. This field should |
| /// not be set if any of the following is true: (1) the quota operation is |
| /// performed on non-API resources. (2) quota_metrics is set because the |
| /// caller is doing quota override. Example of an RPC method name: |
| /// google.example.library.v1.LibraryService.CreateShelf |
| core.String methodName; |
| |
| /// Identity of the operation. This is expected to be unique within the scope |
| /// of the service that generated the operation, and guarantees idempotency in |
| /// case of retries. In order to ensure best performance and latency in the |
| /// Quota backends, operation_ids are optimally associated with time, so that |
| /// related operations can be accessed fast in storage. For this reason, the |
| /// recommended token for services that intend to operate at a high QPS is |
| /// Unix time in nanos + UUID |
| core.String operationId; |
| |
| /// Represents information about this operation. Each MetricValueSet |
| /// corresponds to a metric defined in the service configuration. The data |
| /// type used in the MetricValueSet must agree with the data type specified in |
| /// the metric definition. Within a single operation, it is not allowed to |
| /// have more than one MetricValue instances that have the same metric names |
| /// and identical label value combinations. If a request has such duplicated |
| /// MetricValue instances, the entire request is rejected with an invalid |
| /// argument error. This field is mutually exclusive with method_name. |
| core.List<MetricValueSet> quotaMetrics; |
| |
| /// Quota mode for this operation. |
| /// Possible string values are: |
| /// - "UNSPECIFIED" : Guard against implicit default. Must not be used. |
| /// - "NORMAL" : For AllocateQuota request, allocates quota for the amount |
| /// specified in the service configuration or specified using the quota |
| /// metrics. If the amount is higher than the available quota, allocation |
| /// error will be returned and no quota will be allocated. If multiple quotas |
| /// are part of the request, and one fails, none of the quotas are allocated |
| /// or released. |
| /// - "BEST_EFFORT" : The operation allocates quota for the amount specified |
| /// in the service configuration or specified using the quota metrics. If the |
| /// amount is higher than the available quota, request does not fail but all |
| /// available quota will be allocated. For rate quota, BEST_EFFORT will |
| /// continue to deduct from other groups even if one does not have enough |
| /// quota. For allocation, it will find the minimum available amount across |
| /// all groups and deduct that amount from all the affected groups. |
| /// - "CHECK_ONLY" : For AllocateQuota request, only checks if there is enough |
| /// quota available and does not change the available quota. No lock is placed |
| /// on the available quota either. |
| /// - "QUERY_ONLY" : Unimplemented. When used in AllocateQuotaRequest, this |
| /// returns the effective quota limit(s) in the response, and no quota check |
| /// will be performed. Not supported for other requests, and even for |
| /// AllocateQuotaRequest, this is currently supported only for whitelisted |
| /// services. |
| /// - "ADJUST_ONLY" : The operation allocates quota for the amount specified |
| /// in the service configuration or specified using the quota metrics. If the |
| /// requested amount is higher than the available quota, request does not fail |
| /// and remaining quota would become negative (going over the limit). Not |
| /// supported for Rate Quota. |
| core.String quotaMode; |
| |
| QuotaOperation(); |
| |
| QuotaOperation.fromJson(core.Map _json) { |
| if (_json.containsKey('consumerId')) { |
| consumerId = _json['consumerId'] as core.String; |
| } |
| if (_json.containsKey('labels')) { |
| labels = commons.mapMap<core.String, core.String>( |
| _json['labels'].cast<core.String, core.String>(), |
| (core.String item) => item as core.String); |
| } |
| if (_json.containsKey('methodName')) { |
| methodName = _json['methodName'] as core.String; |
| } |
| if (_json.containsKey('operationId')) { |
| operationId = _json['operationId'] as core.String; |
| } |
| if (_json.containsKey('quotaMetrics')) { |
| quotaMetrics = (_json['quotaMetrics'] as core.List) |
| .map<MetricValueSet>((value) => MetricValueSet.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('quotaMode')) { |
| quotaMode = _json['quotaMode'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (consumerId != null) { |
| _json['consumerId'] = consumerId; |
| } |
| if (labels != null) { |
| _json['labels'] = labels; |
| } |
| if (methodName != null) { |
| _json['methodName'] = methodName; |
| } |
| if (operationId != null) { |
| _json['operationId'] = operationId; |
| } |
| if (quotaMetrics != null) { |
| _json['quotaMetrics'] = |
| quotaMetrics.map((value) => value.toJson()).toList(); |
| } |
| if (quotaMode != null) { |
| _json['quotaMode'] = quotaMode; |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents the properties needed for quota operations. |
| class QuotaProperties { |
| /// Quota mode for this operation. |
| /// Possible string values are: |
| /// - "ACQUIRE" : Decreases available quota by the cost specified for the |
| /// operation. If cost is higher than available quota, operation fails and |
| /// returns error. |
| /// - "ACQUIRE_BEST_EFFORT" : Decreases available quota by the cost specified |
| /// for the operation. If cost is higher than available quota, operation does |
| /// not fail and available quota goes down to zero but it returns error. |
| /// - "CHECK" : Does not change any available quota. Only checks if there is |
| /// enough quota. No lock is placed on the checked tokens neither. |
| /// - "RELEASE" : Increases available quota by the operation cost specified |
| /// for the operation. |
| core.String quotaMode; |
| |
| QuotaProperties(); |
| |
| QuotaProperties.fromJson(core.Map _json) { |
| if (_json.containsKey('quotaMode')) { |
| quotaMode = _json['quotaMode'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (quotaMode != null) { |
| _json['quotaMode'] = quotaMode; |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents the processing error of one Operation in the request. |
| class ReportError { |
| /// The Operation.operation_id value from the request. |
| core.String operationId; |
| |
| /// Details of the error when processing the Operation. |
| Status status; |
| |
| ReportError(); |
| |
| ReportError.fromJson(core.Map _json) { |
| if (_json.containsKey('operationId')) { |
| operationId = _json['operationId'] as core.String; |
| } |
| if (_json.containsKey('status')) { |
| status = Status.fromJson(_json['status']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (operationId != null) { |
| _json['operationId'] = operationId; |
| } |
| if (status != null) { |
| _json['status'] = status.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Contains additional info about the report operation. |
| class ReportInfo { |
| /// The Operation.operation_id value from the request. |
| core.String operationId; |
| |
| /// Quota usage info when processing the `Operation`. |
| QuotaInfo quotaInfo; |
| |
| ReportInfo(); |
| |
| ReportInfo.fromJson(core.Map _json) { |
| if (_json.containsKey('operationId')) { |
| operationId = _json['operationId'] as core.String; |
| } |
| if (_json.containsKey('quotaInfo')) { |
| quotaInfo = QuotaInfo.fromJson(_json['quotaInfo']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (operationId != null) { |
| _json['operationId'] = operationId; |
| } |
| if (quotaInfo != null) { |
| _json['quotaInfo'] = quotaInfo.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Request message for the Report method. |
| class ReportRequest { |
| /// Operations to be reported. Typically the service should report one |
| /// operation per request. Putting multiple operations into a single request |
| /// is allowed, but should be used only when multiple operations are natually |
| /// available at the time of the report. There is no limit on the number of |
| /// operations in the same ReportRequest, however the ReportRequest size |
| /// should be no larger than 1MB. See ReportResponse.report_errors for partial |
| /// failure behavior. |
| core.List<Operation> operations; |
| |
| /// Specifies which version of service config should be used to process the |
| /// request. If unspecified or no matching version can be found, the latest |
| /// one will be used. |
| core.String serviceConfigId; |
| |
| ReportRequest(); |
| |
| ReportRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('operations')) { |
| operations = (_json['operations'] as core.List) |
| .map<Operation>((value) => Operation.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('serviceConfigId')) { |
| serviceConfigId = _json['serviceConfigId'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (operations != null) { |
| _json['operations'] = operations.map((value) => value.toJson()).toList(); |
| } |
| if (serviceConfigId != null) { |
| _json['serviceConfigId'] = serviceConfigId; |
| } |
| return _json; |
| } |
| } |
| |
| /// Response message for the Report method. |
| class ReportResponse { |
| /// Partial failures, one for each `Operation` in the request that failed |
| /// processing. There are three possible combinations of the RPC status: 1. |
| /// The combination of a successful RPC status and an empty `report_errors` |
| /// list indicates a complete success where all `Operations` in the request |
| /// are processed successfully. 2. The combination of a successful RPC status |
| /// and a non-empty `report_errors` list indicates a partial success where |
| /// some `Operations` in the request succeeded. Each `Operation` that failed |
| /// processing has a corresponding item in this list. 3. A failed RPC status |
| /// indicates a general non-deterministic failure. When this happens, it's |
| /// impossible to know which of the 'Operations' in the request succeeded or |
| /// failed. |
| core.List<ReportError> reportErrors; |
| |
| /// Quota usage for each quota release `Operation` request. Fully or partially |
| /// failed quota release request may or may not be present in |
| /// `report_quota_info`. For example, a failed quota release request will have |
| /// the current quota usage info when precise quota library returns the info. |
| /// A deadline exceeded quota request will not have quota usage info. If there |
| /// is no quota release request, report_quota_info will be empty. |
| core.List<ReportInfo> reportInfos; |
| |
| /// The actual config id used to process the request. |
| core.String serviceConfigId; |
| |
| /// The current service rollout id used to process the request. |
| core.String serviceRolloutId; |
| |
| ReportResponse(); |
| |
| ReportResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('reportErrors')) { |
| reportErrors = (_json['reportErrors'] as core.List) |
| .map<ReportError>((value) => ReportError.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('reportInfos')) { |
| reportInfos = (_json['reportInfos'] as core.List) |
| .map<ReportInfo>((value) => ReportInfo.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('serviceConfigId')) { |
| serviceConfigId = _json['serviceConfigId'] as core.String; |
| } |
| if (_json.containsKey('serviceRolloutId')) { |
| serviceRolloutId = _json['serviceRolloutId'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (reportErrors != null) { |
| _json['reportErrors'] = |
| reportErrors.map((value) => value.toJson()).toList(); |
| } |
| if (reportInfos != null) { |
| _json['reportInfos'] = |
| reportInfos.map((value) => value.toJson()).toList(); |
| } |
| if (serviceConfigId != null) { |
| _json['serviceConfigId'] = serviceConfigId; |
| } |
| if (serviceRolloutId != null) { |
| _json['serviceRolloutId'] = serviceRolloutId; |
| } |
| return _json; |
| } |
| } |
| |
| /// This message defines attributes for an HTTP request. If the actual request |
| /// is not an HTTP request, the runtime system should try to map the actual |
| /// request to an equivalent HTTP request. |
| class Request { |
| /// The request authentication. May be absent for unauthenticated requests. |
| /// Derived from the HTTP request `Authorization` header or equivalent. |
| Auth auth; |
| |
| /// The HTTP request headers. If multiple headers share the same key, they |
| /// must be merged according to the HTTP spec. All header keys must be |
| /// lowercased, because HTTP header keys are case-insensitive. |
| core.Map<core.String, core.String> headers; |
| |
| /// The HTTP request `Host` header value. |
| core.String host; |
| |
| /// The unique ID for a request, which can be propagated to downstream |
| /// systems. The ID should have low probability of collision within a single |
| /// day for a specific service. |
| core.String id; |
| |
| /// The HTTP request method, such as `GET`, `POST`. |
| core.String method; |
| |
| /// The HTTP URL path. |
| core.String path; |
| |
| /// The network protocol used with the request, such as "http/1.1", "spdy/3", |
| /// "h2", "h2c", "webrtc", "tcp", "udp", "quic". See |
| /// https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids |
| /// for details. |
| core.String protocol; |
| |
| /// The HTTP URL query in the format of `name1=value1&name2=value2`, as it |
| /// appears in the first line of the HTTP request. No decoding is performed. |
| core.String query; |
| |
| /// A special parameter for request reason. It is used by security systems to |
| /// associate auditing information with a request. |
| core.String reason; |
| |
| /// The HTTP URL scheme, such as `http` and `https`. |
| core.String scheme; |
| |
| /// The HTTP request size in bytes. If unknown, it must be -1. |
| core.String size; |
| |
| /// The timestamp when the `destination` service receives the first byte of |
| /// the request. |
| core.String time; |
| |
| Request(); |
| |
| Request.fromJson(core.Map _json) { |
| if (_json.containsKey('auth')) { |
| auth = Auth.fromJson(_json['auth']); |
| } |
| if (_json.containsKey('headers')) { |
| headers = commons.mapMap<core.String, core.String>( |
| _json['headers'].cast<core.String, core.String>(), |
| (core.String item) => item as core.String); |
| } |
| if (_json.containsKey('host')) { |
| host = _json['host'] as core.String; |
| } |
| if (_json.containsKey('id')) { |
| id = _json['id'] as core.String; |
| } |
| if (_json.containsKey('method')) { |
| method = _json['method'] as core.String; |
| } |
| if (_json.containsKey('path')) { |
| path = _json['path'] as core.String; |
| } |
| if (_json.containsKey('protocol')) { |
| protocol = _json['protocol'] as core.String; |
| } |
| if (_json.containsKey('query')) { |
| query = _json['query'] as core.String; |
| } |
| if (_json.containsKey('reason')) { |
| reason = _json['reason'] as core.String; |
| } |
| if (_json.containsKey('scheme')) { |
| scheme = _json['scheme'] as core.String; |
| } |
| if (_json.containsKey('size')) { |
| size = _json['size'] as core.String; |
| } |
| if (_json.containsKey('time')) { |
| time = _json['time'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (auth != null) { |
| _json['auth'] = auth.toJson(); |
| } |
| if (headers != null) { |
| _json['headers'] = headers; |
| } |
| if (host != null) { |
| _json['host'] = host; |
| } |
| if (id != null) { |
| _json['id'] = id; |
| } |
| if (method != null) { |
| _json['method'] = method; |
| } |
| if (path != null) { |
| _json['path'] = path; |
| } |
| if (protocol != null) { |
| _json['protocol'] = protocol; |
| } |
| if (query != null) { |
| _json['query'] = query; |
| } |
| if (reason != null) { |
| _json['reason'] = reason; |
| } |
| if (scheme != null) { |
| _json['scheme'] = scheme; |
| } |
| if (size != null) { |
| _json['size'] = size; |
| } |
| if (time != null) { |
| _json['time'] = time; |
| } |
| return _json; |
| } |
| } |
| |
| /// Metadata about the request. |
| class RequestMetadata { |
| /// The IP address of the caller. For caller from internet, this will be |
| /// public IPv4 or IPv6 address. For caller from a Compute Engine VM with |
| /// external IP address, this will be the VM's external IP address. For caller |
| /// from a Compute Engine VM without external IP address, if the VM is in the |
| /// same organization (or project) as the accessed resource, `caller_ip` will |
| /// be the VM's internal IPv4 address, otherwise the `caller_ip` will be |
| /// redacted to "gce-internal-ip". See |
| /// https://cloud.google.com/compute/docs/vpc/ for more information. |
| core.String callerIp; |
| |
| /// The network of the caller. Set only if the network host project is part of |
| /// the same GCP organization (or project) as the accessed resource. See |
| /// https://cloud.google.com/compute/docs/vpc/ for more information. This is a |
| /// scheme-less URI full resource name. For example: |
| /// "//compute.googleapis.com/projects/PROJECT_ID/global/networks/NETWORK_ID" |
| core.String callerNetwork; |
| |
| /// The user agent of the caller. This information is not authenticated and |
| /// should be treated accordingly. For example: + |
| /// `google-api-python-client/1.4.0`: The request was made by the Google API |
| /// client for Python. + `Cloud SDK Command Line Tool apitools-client/1.0 |
| /// gcloud/0.9.62`: The request was made by the Google Cloud SDK CLI (gcloud). |
| /// + `AppEngine-Google; (+http://code.google.com/appengine; appid: |
| /// s~my-project`: The request was made from the `my-project` App Engine app. |
| /// NOLINT |
| core.String callerSuppliedUserAgent; |
| |
| /// The destination of a network activity, such as accepting a TCP connection. |
| /// In a multi hop network activity, the destination represents the receiver |
| /// of the last hop. Only two fields are used in this message, Peer.port and |
| /// Peer.ip. These fields are optionally populated by those services utilizing |
| /// the IAM condition feature. |
| Peer destinationAttributes; |
| |
| /// Request attributes used in IAM condition evaluation. This field contains |
| /// request attributes like request time and access levels associated with the |
| /// request. To get the whole view of the attributes used in IAM condition |
| /// evaluation, the user must also look into |
| /// `AuditLog.authentication_info.resource_attributes`. |
| Request requestAttributes; |
| |
| RequestMetadata(); |
| |
| RequestMetadata.fromJson(core.Map _json) { |
| if (_json.containsKey('callerIp')) { |
| callerIp = _json['callerIp'] as core.String; |
| } |
| if (_json.containsKey('callerNetwork')) { |
| callerNetwork = _json['callerNetwork'] as core.String; |
| } |
| if (_json.containsKey('callerSuppliedUserAgent')) { |
| callerSuppliedUserAgent = _json['callerSuppliedUserAgent'] as core.String; |
| } |
| if (_json.containsKey('destinationAttributes')) { |
| destinationAttributes = Peer.fromJson(_json['destinationAttributes']); |
| } |
| if (_json.containsKey('requestAttributes')) { |
| requestAttributes = Request.fromJson(_json['requestAttributes']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (callerIp != null) { |
| _json['callerIp'] = callerIp; |
| } |
| if (callerNetwork != null) { |
| _json['callerNetwork'] = callerNetwork; |
| } |
| if (callerSuppliedUserAgent != null) { |
| _json['callerSuppliedUserAgent'] = callerSuppliedUserAgent; |
| } |
| if (destinationAttributes != null) { |
| _json['destinationAttributes'] = destinationAttributes.toJson(); |
| } |
| if (requestAttributes != null) { |
| _json['requestAttributes'] = requestAttributes.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// This message defines core attributes for a resource. A resource is an |
| /// addressable (named) entity provided by the destination service. For example, |
| /// a file stored on a network storage service. |
| class Resource { |
| /// The labels or tags on the resource, such as AWS resource tags and |
| /// Kubernetes resource labels. |
| core.Map<core.String, core.String> labels; |
| |
| /// The stable identifier (name) of a resource on the `service`. A resource |
| /// can be logically identified as "//{resource.service}/{resource.name}". The |
| /// differences between a resource name and a URI are: * Resource name is a |
| /// logical identifier, independent of network protocol and API version. For |
| /// example, `//pubsub.googleapis.com/projects/123/topics/news-feed`. * URI |
| /// often includes protocol and version information, so it can be used |
| /// directly by applications. For example, |
| /// `https://pubsub.googleapis.com/v1/projects/123/topics/news-feed`. See |
| /// https://cloud.google.com/apis/design/resource_names for details. |
| core.String name; |
| |
| /// The name of the service that this resource belongs to, such as |
| /// `pubsub.googleapis.com`. The service may be different from the DNS |
| /// hostname that actually serves the request. |
| core.String service; |
| |
| /// The type of the resource. The syntax is platform-specific because |
| /// different platforms define their resources differently. For Google APIs, |
| /// the type format must be "{service}/{kind}". |
| core.String type; |
| |
| Resource(); |
| |
| Resource.fromJson(core.Map _json) { |
| if (_json.containsKey('labels')) { |
| labels = commons.mapMap<core.String, core.String>( |
| _json['labels'].cast<core.String, core.String>(), |
| (core.String item) => item as core.String); |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('service')) { |
| service = _json['service'] as core.String; |
| } |
| if (_json.containsKey('type')) { |
| type = _json['type'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (labels != null) { |
| _json['labels'] = labels; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (service != null) { |
| _json['service'] = service; |
| } |
| if (type != null) { |
| _json['type'] = type; |
| } |
| return _json; |
| } |
| } |
| |
| /// Describes a resource associated with this operation. |
| class ResourceInfo { |
| /// The identifier of the parent of this resource instance. Must be in one of |
| /// the following formats: - `projects/` - `folders/` - `organizations/` |
| core.String resourceContainer; |
| |
| /// The location of the resource. If not empty, the resource will be checked |
| /// against location policy. The value must be a valid zone, region or |
| /// multiregion. For example: "europe-west4" or "northamerica-northeast1-a" |
| core.String resourceLocation; |
| |
| /// Name of the resource. This is used for auditing purposes. |
| core.String resourceName; |
| |
| ResourceInfo(); |
| |
| ResourceInfo.fromJson(core.Map _json) { |
| if (_json.containsKey('resourceContainer')) { |
| resourceContainer = _json['resourceContainer'] as core.String; |
| } |
| if (_json.containsKey('resourceLocation')) { |
| resourceLocation = _json['resourceLocation'] as core.String; |
| } |
| if (_json.containsKey('resourceName')) { |
| resourceName = _json['resourceName'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (resourceContainer != null) { |
| _json['resourceContainer'] = resourceContainer; |
| } |
| if (resourceLocation != null) { |
| _json['resourceLocation'] = resourceLocation; |
| } |
| if (resourceName != null) { |
| _json['resourceName'] = resourceName; |
| } |
| return _json; |
| } |
| } |
| |
| /// Location information about a resource. |
| class ResourceLocation { |
| /// The locations of a resource after the execution of the operation. Requests |
| /// to create or delete a location based resource must populate the |
| /// 'current_locations' field and not the 'original_locations' field. For |
| /// example: "europe-west1-a" "us-east1" "nam3" |
| core.List<core.String> currentLocations; |
| |
| /// The locations of a resource prior to the execution of the operation. |
| /// Requests that mutate the resource's location must populate both the |
| /// 'original_locations' as well as the 'current_locations' fields. For |
| /// example: "europe-west1-a" "us-east1" "nam3" |
| core.List<core.String> originalLocations; |
| |
| ResourceLocation(); |
| |
| ResourceLocation.fromJson(core.Map _json) { |
| if (_json.containsKey('currentLocations')) { |
| currentLocations = (_json['currentLocations'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('originalLocations')) { |
| originalLocations = (_json['originalLocations'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (currentLocations != null) { |
| _json['currentLocations'] = currentLocations; |
| } |
| if (originalLocations != null) { |
| _json['originalLocations'] = originalLocations; |
| } |
| return _json; |
| } |
| } |
| |
| /// Identity delegation history of an authenticated service account. |
| class ServiceAccountDelegationInfo { |
| /// First party (Google) identity as the real authority. |
| FirstPartyPrincipal firstPartyPrincipal; |
| |
| /// Third party identity as the real authority. |
| ThirdPartyPrincipal thirdPartyPrincipal; |
| |
| ServiceAccountDelegationInfo(); |
| |
| ServiceAccountDelegationInfo.fromJson(core.Map _json) { |
| if (_json.containsKey('firstPartyPrincipal')) { |
| firstPartyPrincipal = |
| FirstPartyPrincipal.fromJson(_json['firstPartyPrincipal']); |
| } |
| if (_json.containsKey('thirdPartyPrincipal')) { |
| thirdPartyPrincipal = |
| ThirdPartyPrincipal.fromJson(_json['thirdPartyPrincipal']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (firstPartyPrincipal != null) { |
| _json['firstPartyPrincipal'] = firstPartyPrincipal.toJson(); |
| } |
| if (thirdPartyPrincipal != null) { |
| _json['thirdPartyPrincipal'] = thirdPartyPrincipal.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// The context of a span, attached to Exemplars in Distribution values during |
| /// aggregation. It contains the name of a span with format: |
| /// projects/[PROJECT_ID_OR_NUMBER]/traces/[TRACE_ID]/spans/[SPAN_ID] |
| class SpanContext { |
| /// The resource name of the span. The format is: |
| /// projects/[PROJECT_ID_OR_NUMBER]/traces/[TRACE_ID]/spans/[SPAN_ID] |
| /// `[TRACE_ID]` is a unique identifier for a trace within a project; it is a |
| /// 32-character hexadecimal encoding of a 16-byte array. `[SPAN_ID]` is a |
| /// unique identifier for a span within a trace; it is a 16-character |
| /// hexadecimal encoding of an 8-byte array. |
| core.String spanName; |
| |
| SpanContext(); |
| |
| SpanContext.fromJson(core.Map _json) { |
| if (_json.containsKey('spanName')) { |
| spanName = _json['spanName'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (spanName != null) { |
| _json['spanName'] = spanName; |
| } |
| return _json; |
| } |
| } |
| |
| /// The `Status` type defines a logical error model that is suitable for |
| /// different programming environments, including REST APIs and RPC APIs. It is |
| /// used by [gRPC](https://github.com/grpc). Each `Status` message contains |
| /// three pieces of data: error code, error message, and error details. You can |
| /// find out more about this error model and how to work with it in the [API |
| /// Design Guide](https://cloud.google.com/apis/design/errors). |
| class Status { |
| /// The status code, which should be an enum value of google.rpc.Code. |
| core.int code; |
| |
| /// A list of messages that carry the error details. There is a common set of |
| /// message types for APIs to use. |
| /// |
| /// The values for Object must be JSON objects. It can consist of `num`, |
| /// `String`, `bool` and `null` as well as `Map` and `List` values. |
| core.List<core.Map<core.String, core.Object>> details; |
| |
| /// A developer-facing error message, which should be in English. Any |
| /// user-facing error message should be localized and sent in the |
| /// google.rpc.Status.details field, or localized by the client. |
| core.String message; |
| |
| Status(); |
| |
| Status.fromJson(core.Map _json) { |
| if (_json.containsKey('code')) { |
| code = _json['code'] as core.int; |
| } |
| if (_json.containsKey('details')) { |
| details = (_json['details'] as core.List) |
| .map<core.Map<core.String, core.Object>>((value) => |
| commons.mapMap<core.Object, core.Object>( |
| value.cast<core.String, core.Object>(), |
| (core.Object item) => item as core.Object)) |
| .toList(); |
| } |
| if (_json.containsKey('message')) { |
| message = _json['message'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (code != null) { |
| _json['code'] = code; |
| } |
| if (details != null) { |
| _json['details'] = details; |
| } |
| if (message != null) { |
| _json['message'] = message; |
| } |
| return _json; |
| } |
| } |
| |
| /// Third party identity principal. |
| class ThirdPartyPrincipal { |
| /// Metadata about third party identity. |
| /// |
| /// The values for Object must be JSON objects. It can consist of `num`, |
| /// `String`, `bool` and `null` as well as `Map` and `List` values. |
| core.Map<core.String, core.Object> thirdPartyClaims; |
| |
| ThirdPartyPrincipal(); |
| |
| ThirdPartyPrincipal.fromJson(core.Map _json) { |
| if (_json.containsKey('thirdPartyClaims')) { |
| thirdPartyClaims = commons.mapMap<core.Object, core.Object>( |
| _json['thirdPartyClaims'].cast<core.String, core.Object>(), |
| (core.Object item) => item as core.Object); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (thirdPartyClaims != null) { |
| _json['thirdPartyClaims'] = thirdPartyClaims; |
| } |
| return _json; |
| } |
| } |
| |
| /// A span represents a single operation within a trace. Spans can be nested to |
| /// form a trace tree. Often, a trace contains a root span that describes the |
| /// end-to-end latency, and one or more subspans for its sub-operations. A trace |
| /// can also contain multiple root spans, or none at all. Spans do not need to |
| /// be contiguous—there may be gaps or overlaps between spans in a trace. |
| class TraceSpan { |
| /// A set of attributes on the span. You can have up to 32 attributes per |
| /// span. |
| Attributes attributes; |
| |
| /// An optional number of child spans that were generated while this span was |
| /// active. If set, allows implementation to detect missing child spans. |
| core.int childSpanCount; |
| |
| /// A description of the span's operation (up to 128 bytes). Stackdriver Trace |
| /// displays the description in the Google Cloud Platform Console. For |
| /// example, the display name can be a qualified method name or a file name |
| /// and a line number where the operation is called. A best practice is to use |
| /// the same display name within an application and at the same call point. |
| /// This makes it easier to correlate spans in different traces. |
| TruncatableString displayName; |
| |
| /// The end time of the span. On the client side, this is the time kept by the |
| /// local machine where the span execution ends. On the server side, this is |
| /// the time when the server application handler stops running. |
| core.String endTime; |
| |
| /// The resource name of the span in the following format: |
| /// projects/[PROJECT_ID]/traces/[TRACE_ID]/spans/SPAN_ID is a unique |
| /// identifier for a trace within a project; it is a 32-character hexadecimal |
| /// encoding of a 16-byte array. [SPAN_ID] is a unique identifier for a span |
| /// within a trace; it is a 16-character hexadecimal encoding of an 8-byte |
| /// array. |
| core.String name; |
| |
| /// The [SPAN_ID] of this span's parent span. If this is a root span, then |
| /// this field must be empty. |
| core.String parentSpanId; |
| |
| /// (Optional) Set this parameter to indicate whether this span is in the same |
| /// process as its parent. If you do not set this parameter, Stackdriver Trace |
| /// is unable to take advantage of this helpful information. |
| core.bool sameProcessAsParentSpan; |
| |
| /// The [SPAN_ID] portion of the span's resource name. |
| core.String spanId; |
| |
| /// Distinguishes between spans generated in a particular context. For |
| /// example, two spans with the same name may be distinguished using `CLIENT` |
| /// (caller) and `SERVER` (callee) to identify an RPC call. |
| /// Possible string values are: |
| /// - "SPAN_KIND_UNSPECIFIED" : Unspecified. Do NOT use as default. |
| /// Implementations MAY assume SpanKind.INTERNAL to be default. |
| /// - "INTERNAL" : Indicates that the span is used internally. Default value. |
| /// - "SERVER" : Indicates that the span covers server-side handling of an RPC |
| /// or other remote network request. |
| /// - "CLIENT" : Indicates that the span covers the client-side wrapper around |
| /// an RPC or other remote request. |
| /// - "PRODUCER" : Indicates that the span describes producer sending a |
| /// message to a broker. Unlike client and server, there is no direct critical |
| /// path latency relationship between producer and consumer spans (e.g. |
| /// publishing a message to a pubsub service). |
| /// - "CONSUMER" : Indicates that the span describes consumer receiving a |
| /// message from a broker. Unlike client and server, there is no direct |
| /// critical path latency relationship between producer and consumer spans |
| /// (e.g. receiving a message from a pubsub service subscription). |
| core.String spanKind; |
| |
| /// The start time of the span. On the client side, this is the time kept by |
| /// the local machine where the span execution starts. On the server side, |
| /// this is the time when the server's application handler starts running. |
| core.String startTime; |
| |
| /// An optional final status for this span. |
| Status status; |
| |
| TraceSpan(); |
| |
| TraceSpan.fromJson(core.Map _json) { |
| if (_json.containsKey('attributes')) { |
| attributes = Attributes.fromJson(_json['attributes']); |
| } |
| if (_json.containsKey('childSpanCount')) { |
| childSpanCount = _json['childSpanCount'] as core.int; |
| } |
| if (_json.containsKey('displayName')) { |
| displayName = TruncatableString.fromJson(_json['displayName']); |
| } |
| if (_json.containsKey('endTime')) { |
| endTime = _json['endTime'] as core.String; |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('parentSpanId')) { |
| parentSpanId = _json['parentSpanId'] as core.String; |
| } |
| if (_json.containsKey('sameProcessAsParentSpan')) { |
| sameProcessAsParentSpan = _json['sameProcessAsParentSpan'] as core.bool; |
| } |
| if (_json.containsKey('spanId')) { |
| spanId = _json['spanId'] as core.String; |
| } |
| if (_json.containsKey('spanKind')) { |
| spanKind = _json['spanKind'] as core.String; |
| } |
| if (_json.containsKey('startTime')) { |
| startTime = _json['startTime'] as core.String; |
| } |
| if (_json.containsKey('status')) { |
| status = Status.fromJson(_json['status']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (attributes != null) { |
| _json['attributes'] = attributes.toJson(); |
| } |
| if (childSpanCount != null) { |
| _json['childSpanCount'] = childSpanCount; |
| } |
| if (displayName != null) { |
| _json['displayName'] = displayName.toJson(); |
| } |
| if (endTime != null) { |
| _json['endTime'] = endTime; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (parentSpanId != null) { |
| _json['parentSpanId'] = parentSpanId; |
| } |
| if (sameProcessAsParentSpan != null) { |
| _json['sameProcessAsParentSpan'] = sameProcessAsParentSpan; |
| } |
| if (spanId != null) { |
| _json['spanId'] = spanId; |
| } |
| if (spanKind != null) { |
| _json['spanKind'] = spanKind; |
| } |
| if (startTime != null) { |
| _json['startTime'] = startTime; |
| } |
| if (status != null) { |
| _json['status'] = status.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents a string that might be shortened to a specified length. |
| class TruncatableString { |
| /// The number of bytes removed from the original string. If this value is 0, |
| /// then the string was not shortened. |
| core.int truncatedByteCount; |
| |
| /// The shortened string. For example, if the original string is 500 bytes |
| /// long and the limit of the string is 128 bytes, then `value` contains the |
| /// first 128 bytes of the 500-byte string. Truncation always happens on a |
| /// UTF8 character boundary. If there are multi-byte characters in the string, |
| /// then the length of the shortened string might be less than the size limit. |
| core.String value; |
| |
| TruncatableString(); |
| |
| TruncatableString.fromJson(core.Map _json) { |
| if (_json.containsKey('truncatedByteCount')) { |
| truncatedByteCount = _json['truncatedByteCount'] as core.int; |
| } |
| if (_json.containsKey('value')) { |
| value = _json['value'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (truncatedByteCount != null) { |
| _json['truncatedByteCount'] = truncatedByteCount; |
| } |
| if (value != null) { |
| _json['value'] = value; |
| } |
| return _json; |
| } |
| } |