From 3ef5ffd7351809d75c1332d2eaad1f24d9c318e4 Mon Sep 17 00:00:00 2001 From: Google APIs Date: Mon, 18 Nov 2019 08:36:55 -0800 Subject: [PATCH] Migrate Error Reporting v1beta1 to proto annotations / GAPIC v2. Committer: @lukesneeringer PiperOrigin-RevId: 281075722 --- .../artman_errorreporting.yaml | 2 +- .../clouderrorreporting/errorreporting.yaml | 24 -- .../v1beta1/clouderrorreporting_v1beta1.yaml | 34 +++ .../clouderrorreporting/v1beta1/common.proto | 24 +- .../v1beta1/error_group_service.proto | 25 +- .../v1beta1/error_stats_service.proto | 201 +++++++++------- .../v1beta1/errorreporting_gapic.legacy.yaml | 223 ++++++++++++++++++ .../v1beta1/errorreporting_gapic.yaml | 195 +-------------- .../errorreporting_grpc_service_config.json | 32 +++ .../v1beta1/report_errors_service.proto | 83 +++++-- 10 files changed, 500 insertions(+), 343 deletions(-) delete mode 100644 google/devtools/clouderrorreporting/errorreporting.yaml create mode 100644 google/devtools/clouderrorreporting/v1beta1/clouderrorreporting_v1beta1.yaml create mode 100644 google/devtools/clouderrorreporting/v1beta1/errorreporting_gapic.legacy.yaml create mode 100755 google/devtools/clouderrorreporting/v1beta1/errorreporting_grpc_service_config.json diff --git a/google/devtools/clouderrorreporting/artman_errorreporting.yaml b/google/devtools/clouderrorreporting/artman_errorreporting.yaml index 0e5a573a..a4dd9f0c 100644 --- a/google/devtools/clouderrorreporting/artman_errorreporting.yaml +++ b/google/devtools/clouderrorreporting/artman_errorreporting.yaml @@ -2,7 +2,7 @@ common: api_name: error-reporting api_version: v1beta1 organization_name: google-cloud - service_yaml: errorreporting.yaml + service_yaml: v1beta1/clouderrorreporting_v1beta1.yaml gapic_yaml: v1beta1/errorreporting_gapic.yaml src_proto_paths: - v1beta1 diff --git a/google/devtools/clouderrorreporting/errorreporting.yaml b/google/devtools/clouderrorreporting/errorreporting.yaml deleted file mode 100644 index 75df65ce..00000000 --- a/google/devtools/clouderrorreporting/errorreporting.yaml +++ /dev/null @@ -1,24 +0,0 @@ -type: google.api.Service -config_version: 3 -title: Stackdriver Error Reporting API -name: clouderrorreporting.googleapis.com - -documentation: - summary: >- - - Stackdriver Error Reporting groups and counts similar errors - from cloud services. - The Stackdriver Error Reporting API provides a way to report new errors and - read access to error groups and their associated errors. - -apis: -- name: google.devtools.clouderrorreporting.v1beta1.ErrorGroupService -- name: google.devtools.clouderrorreporting.v1beta1.ErrorStatsService -- name: google.devtools.clouderrorreporting.v1beta1.ReportErrorsService - -authentication: - rules: - - selector: '*' - oauth: - canonical_scopes: - https://www.googleapis.com/auth/cloud-platform diff --git a/google/devtools/clouderrorreporting/v1beta1/clouderrorreporting_v1beta1.yaml b/google/devtools/clouderrorreporting/v1beta1/clouderrorreporting_v1beta1.yaml new file mode 100644 index 00000000..7c311cc2 --- /dev/null +++ b/google/devtools/clouderrorreporting/v1beta1/clouderrorreporting_v1beta1.yaml @@ -0,0 +1,34 @@ +type: google.api.Service +config_version: 3 +name: clouderrorreporting.googleapis.com +title: Stackdriver Error Reporting API + +apis: +- name: google.devtools.clouderrorreporting.v1beta1.ErrorGroupService +- name: google.devtools.clouderrorreporting.v1beta1.ErrorStatsService +- name: google.devtools.clouderrorreporting.v1beta1.ReportErrorsService + +documentation: + summary: |- + Groups and counts similar errors from cloud services and applications, + reports new errors, and provides access to error groups and their + associated errors. + +authentication: + rules: + - selector: google.devtools.clouderrorreporting.v1beta1.ErrorGroupService.GetGroup + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.devtools.clouderrorreporting.v1beta1.ErrorGroupService.UpdateGroup + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.devtools.clouderrorreporting.v1beta1.ErrorStatsService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.devtools.clouderrorreporting.v1beta1.ReportErrorsService.ReportErrorEvent + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform diff --git a/google/devtools/clouderrorreporting/v1beta1/common.proto b/google/devtools/clouderrorreporting/v1beta1/common.proto index 132f1a64..5a4f0252 100644 --- a/google/devtools/clouderrorreporting/v1beta1/common.proto +++ b/google/devtools/clouderrorreporting/v1beta1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2016 Google Inc. +// Copyright 2019 Google LLC. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -17,9 +17,10 @@ syntax = "proto3"; package google.devtools.clouderrorreporting.v1beta1; import "google/api/annotations.proto"; -import "google/api/monitored_resource.proto"; +import "google/api/resource.proto"; import "google/protobuf/timestamp.proto"; +option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.ErrorReporting.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1;clouderrorreporting"; option java_multiple_files = true; @@ -29,6 +30,11 @@ option php_namespace = "Google\\Cloud\\ErrorReporting\\V1beta1"; // Description of a group of similar error events. message ErrorGroup { + option (google.api.resource) = { + type: "clouderrorreporting.googleapis.com/ErrorGroup" + pattern: "projects/{project}/groups/{group}" + }; + // The group resource name. // Example: projects/my-project-123/groups/my-groupid string name = 1; @@ -79,6 +85,8 @@ message ServiceContext { // Represents the source code version that the developer provided, // which could represent a version label or a Git SHA-1 hash, for example. + // For App Engine standard environment, the version is set to the version of + // the app. string version = 3; // Type of the MonitoredResource. List of possible values: @@ -112,8 +120,7 @@ message ErrorContext { // report the error, usually the place where it was logged. // For a logged exception this would be the source line where the // exception is logged, usually close to the place where it was - // caught. This value is in contrast to `Exception.cause_location`, - // which describes the source line where the exception was thrown. + // caught. SourceLocation report_location = 3; } @@ -144,11 +151,10 @@ message HttpRequestContext { string remote_ip = 6; } -// Indicates a location in the source code of the service for which -// errors are reported. -// This data should be provided by the application when reporting an error, -// unless the error report has been generated automatically from Google App -// Engine logs. All fields are optional. +// Indicates a location in the source code of the service for which errors are +// reported. `functionName` must be provided by the application when reporting +// an error, unless the error report contains a `message` with a supported +// exception stack trace. All fields are optional for the later case. message SourceLocation { // The source code filename, which can include a truncated relative // path, or a full path from a production machine. diff --git a/google/devtools/clouderrorreporting/v1beta1/error_group_service.proto b/google/devtools/clouderrorreporting/v1beta1/error_group_service.proto index 15086a9e..ab14ab31 100644 --- a/google/devtools/clouderrorreporting/v1beta1/error_group_service.proto +++ b/google/devtools/clouderrorreporting/v1beta1/error_group_service.proto @@ -1,4 +1,4 @@ -// Copyright 2016 Google Inc. +// Copyright 2019 Google LLC. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -11,14 +11,19 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. +// syntax = "proto3"; package google.devtools.clouderrorreporting.v1beta1; import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; import "google/devtools/clouderrorreporting/v1beta1/common.proto"; +option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.ErrorReporting.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1;clouderrorreporting"; option java_multiple_files = true; @@ -28,11 +33,15 @@ option php_namespace = "Google\\Cloud\\ErrorReporting\\V1beta1"; // Service for retrieving and updating individual error groups. service ErrorGroupService { + option (google.api.default_host) = "clouderrorreporting.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + // Get the specified group. rpc GetGroup(GetGroupRequest) returns (ErrorGroup) { option (google.api.http) = { get: "/v1beta1/{group_name=projects/*/groups/*}" }; + option (google.api.method_signature) = "group_name"; } // Replace the data for the specified group. @@ -42,12 +51,13 @@ service ErrorGroupService { put: "/v1beta1/{group.name=projects/*/groups/*}" body: "group" }; + option (google.api.method_signature) = "group"; } } // A request to return an individual group. message GetGroupRequest { - // [Required] The group resource name. Written as + // Required. The group resource name. Written as // projects/projectID/groups/group_name. // Call // @@ -55,11 +65,16 @@ message GetGroupRequest { // this project. // // Example: projects/my-project-123/groups/my-group - string group_name = 1; + string group_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "clouderrorreporting.googleapis.com/ErrorGroup" + } + ]; } // A request to replace the existing data for the given group. message UpdateGroupRequest { - // [Required] The group which replaces the resource on the server. - ErrorGroup group = 1; + // Required. The group which replaces the resource on the server. + ErrorGroup group = 1 [(google.api.field_behavior) = REQUIRED]; } diff --git a/google/devtools/clouderrorreporting/v1beta1/error_stats_service.proto b/google/devtools/clouderrorreporting/v1beta1/error_stats_service.proto index ffb25b2b..8f4c909e 100644 --- a/google/devtools/clouderrorreporting/v1beta1/error_stats_service.proto +++ b/google/devtools/clouderrorreporting/v1beta1/error_stats_service.proto @@ -1,4 +1,4 @@ -// Copyright 2016 Google Inc. +// Copyright 2019 Google LLC. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -11,16 +11,21 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. +// syntax = "proto3"; package google.devtools.clouderrorreporting.v1beta1; import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; import "google/devtools/clouderrorreporting/v1beta1/common.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; +option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.ErrorReporting.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1;clouderrorreporting"; option java_multiple_files = true; @@ -31,11 +36,15 @@ option php_namespace = "Google\\Cloud\\ErrorReporting\\V1beta1"; // An API for retrieving and managing error statistics as well as data for // individual events. service ErrorStatsService { + option (google.api.default_host) = "clouderrorreporting.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + // Lists the specified groups. rpc ListGroupStats(ListGroupStatsRequest) returns (ListGroupStatsResponse) { option (google.api.http) = { get: "/v1beta1/{project_name=projects/*}/groupStats" }; + option (google.api.method_signature) = "project_name,time_range"; } // Lists the specified events. @@ -43,6 +52,7 @@ service ErrorStatsService { option (google.api.http) = { get: "/v1beta1/{project_name=projects/*}/events" }; + option (google.api.method_signature) = "project_name,group_id"; } // Deletes all error events of a given project. @@ -50,60 +60,67 @@ service ErrorStatsService { option (google.api.http) = { delete: "/v1beta1/{project_name=projects/*}/events" }; + option (google.api.method_signature) = "project_name"; } } // Specifies a set of `ErrorGroupStats` to return. message ListGroupStatsRequest { - // [Required] The resource name of the Google Cloud Platform project. Written + // Required. The resource name of the Google Cloud Platform project. Written // as projects/ plus the // Google Cloud // Platform project ID. // // Example: projects/my-project-123. - string project_name = 1; + string project_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; - // [Optional] List all ErrorGroupStats with these IDs. - repeated string group_id = 2; + // Optional. List all ErrorGroupStats with these IDs. + repeated string group_id = 2 [(google.api.field_behavior) = OPTIONAL]; - // [Optional] List only ErrorGroupStats which belong to a service + // Optional. List only ErrorGroupStats which belong to a service // context that matches the filter. // Data for all service contexts is returned if this field is not specified. - ServiceContextFilter service_filter = 3; + ServiceContextFilter service_filter = 3 [(google.api.field_behavior) = OPTIONAL]; - // [Optional] List data for the given time range. - // If not set a default time range is used. The field time_range_begin - // in the response will specify the beginning of this time range. + // Optional. List data for the given time range. + // If not set, a default time range is used. The field + // time_range_begin in the response will specify the beginning + // of this time range. // Only ErrorGroupStats with a non-zero count in the given time - // range are returned, unless the request contains an explicit group_id list. - // If a group_id list is given, also ErrorGroupStats with zero - // occurrences are returned. - QueryTimeRange time_range = 5; + // range are returned, unless the request contains an explicit + // group_id list. If a group_id list is given, also + // ErrorGroupStats with zero occurrences are returned. + QueryTimeRange time_range = 5 [(google.api.field_behavior) = OPTIONAL]; - // [Optional] The preferred duration for a single returned `TimedCount`. + // Optional. The preferred duration for a single returned `TimedCount`. // If not set, no timed counts are returned. - google.protobuf.Duration timed_count_duration = 6; + google.protobuf.Duration timed_count_duration = 6 [(google.api.field_behavior) = OPTIONAL]; - // [Optional] The alignment of the timed counts to be returned. + // Optional. The alignment of the timed counts to be returned. // Default is `ALIGNMENT_EQUAL_AT_END`. - TimedCountAlignment alignment = 7; + TimedCountAlignment alignment = 7 [(google.api.field_behavior) = OPTIONAL]; - // [Optional] Time where the timed counts shall be aligned if rounded + // Optional. Time where the timed counts shall be aligned if rounded // alignment is chosen. Default is 00:00 UTC. - google.protobuf.Timestamp alignment_time = 8; + google.protobuf.Timestamp alignment_time = 8 [(google.api.field_behavior) = OPTIONAL]; - // [Optional] The sort order in which the results are returned. + // Optional. The sort order in which the results are returned. // Default is `COUNT_DESC`. - ErrorGroupOrder order = 9; + ErrorGroupOrder order = 9 [(google.api.field_behavior) = OPTIONAL]; - // [Optional] The maximum number of results to return per response. + // Optional. The maximum number of results to return per response. // Default is 20. - int32 page_size = 11; + int32 page_size = 11 [(google.api.field_behavior) = OPTIONAL]; - // [Optional] A `next_page_token` provided by a previous response. To view + // Optional. A `next_page_token` provided by a previous response. To view // additional results, pass this token along with the identical query // parameters as the first request. - string page_token = 12; + string page_token = 12 [(google.api.field_behavior) = OPTIONAL]; } // Contains a set of requested error group stats. @@ -196,33 +213,79 @@ message TimedCount { google.protobuf.Timestamp end_time = 3; } +// Specifies how the time periods of error group counts are aligned. +enum TimedCountAlignment { + // No alignment specified. + ERROR_COUNT_ALIGNMENT_UNSPECIFIED = 0; + + // The time periods shall be consecutive, have width equal to the + // requested duration, and be aligned at the `alignment_time` provided in + // the request. + // The `alignment_time` does not have to be inside the query period but + // even if it is outside, only time periods are returned which overlap + // with the query period. + // A rounded alignment will typically result in a + // different size of the first or the last time period. + ALIGNMENT_EQUAL_ROUNDED = 1; + + // The time periods shall be consecutive, have width equal to the + // requested duration, and be aligned at the end of the requested time + // period. This can result in a different size of the + // first time period. + ALIGNMENT_EQUAL_AT_END = 2; +} + +// A sorting order of error groups. +enum ErrorGroupOrder { + // No group order specified. + GROUP_ORDER_UNSPECIFIED = 0; + + // Total count of errors in the given time window in descending order. + COUNT_DESC = 1; + + // Timestamp when the group was last seen in the given time window + // in descending order. + LAST_SEEN_DESC = 2; + + // Timestamp when the group was created in descending order. + CREATED_DESC = 3; + + // Number of affected users in the given time window in descending order. + AFFECTED_USERS_DESC = 4; +} + // Specifies a set of error events to return. message ListEventsRequest { - // [Required] The resource name of the Google Cloud Platform project. Written + // Required. The resource name of the Google Cloud Platform project. Written // as `projects/` plus the // [Google Cloud Platform project // ID](https://support.google.com/cloud/answer/6158840). // Example: `projects/my-project-123`. - string project_name = 1; + string project_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; - // [Required] The group for which events shall be returned. - string group_id = 2; + // Required. The group for which events shall be returned. + string group_id = 2 [(google.api.field_behavior) = REQUIRED]; - // [Optional] List only ErrorGroups which belong to a service context that + // Optional. List only ErrorGroups which belong to a service context that // matches the filter. // Data for all service contexts is returned if this field is not specified. - ServiceContextFilter service_filter = 3; + ServiceContextFilter service_filter = 3 [(google.api.field_behavior) = OPTIONAL]; - // [Optional] List only data for the given time range. + // Optional. List only data for the given time range. // If not set a default time range is used. The field time_range_begin // in the response will specify the beginning of this time range. - QueryTimeRange time_range = 4; + QueryTimeRange time_range = 4 [(google.api.field_behavior) = OPTIONAL]; - // [Optional] The maximum number of results to return per response. - int32 page_size = 6; + // Optional. The maximum number of results to return per response. + int32 page_size = 6 [(google.api.field_behavior) = OPTIONAL]; - // [Optional] A `next_page_token` provided by a previous response. - string page_token = 7; + // Optional. A `next_page_token` provided by a previous response. + string page_token = 7 [(google.api.field_behavior) = OPTIONAL]; } // Contains a set of requested error events. @@ -277,69 +340,35 @@ message QueryTimeRange { // Only exact, case-sensitive matches are supported. // If a field is unset or empty, it matches arbitrary values. message ServiceContextFilter { - // [Optional] The exact value to match against + // Optional. The exact value to match against // [`ServiceContext.service`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.service). - string service = 2; + string service = 2 [(google.api.field_behavior) = OPTIONAL]; - // [Optional] The exact value to match against + // Optional. The exact value to match against // [`ServiceContext.version`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.version). - string version = 3; + string version = 3 [(google.api.field_behavior) = OPTIONAL]; - // [Optional] The exact value to match against + // Optional. The exact value to match against // [`ServiceContext.resource_type`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.resource_type). - string resource_type = 4; + string resource_type = 4 [(google.api.field_behavior) = OPTIONAL]; } // Deletes all events in the project. message DeleteEventsRequest { - // [Required] The resource name of the Google Cloud Platform project. Written + // Required. The resource name of the Google Cloud Platform project. Written // as `projects/` plus the // [Google Cloud Platform project // ID](https://support.google.com/cloud/answer/6158840). // Example: `projects/my-project-123`. - string project_name = 1; + string project_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; } // Response message for deleting error events. -message DeleteEventsResponse {} +message DeleteEventsResponse { -// Specifies how the time periods of error group counts are aligned. -enum TimedCountAlignment { - // No alignment specified. - ERROR_COUNT_ALIGNMENT_UNSPECIFIED = 0; - - // The time periods shall be consecutive, have width equal to the - // requested duration, and be aligned at the `alignment_time` provided in - // the request. - // The `alignment_time` does not have to be inside the query period but - // even if it is outside, only time periods are returned which overlap - // with the query period. - // A rounded alignment will typically result in a - // different size of the first or the last time period. - ALIGNMENT_EQUAL_ROUNDED = 1; - - // The time periods shall be consecutive, have width equal to the - // requested duration, and be aligned at the end of the requested time - // period. This can result in a different size of the - // first time period. - ALIGNMENT_EQUAL_AT_END = 2; -} - -// A sorting order of error groups. -enum ErrorGroupOrder { - // No group order specified. - GROUP_ORDER_UNSPECIFIED = 0; - - // Total count of errors in the given time window in descending order. - COUNT_DESC = 1; - - // Timestamp when the group was last seen in the given time window - // in descending order. - LAST_SEEN_DESC = 2; - - // Timestamp when the group was created in descending order. - CREATED_DESC = 3; - - // Number of affected users in the given time window in descending order. - AFFECTED_USERS_DESC = 4; } diff --git a/google/devtools/clouderrorreporting/v1beta1/errorreporting_gapic.legacy.yaml b/google/devtools/clouderrorreporting/v1beta1/errorreporting_gapic.legacy.yaml new file mode 100644 index 00000000..32e70a5b --- /dev/null +++ b/google/devtools/clouderrorreporting/v1beta1/errorreporting_gapic.legacy.yaml @@ -0,0 +1,223 @@ +type: com.google.api.codegen.ConfigProto +config_schema_version: 1.0.0 +language_settings: + java: + package_name: com.google.cloud.errorreporting.v1beta1 + python: + package_name: google.cloud.errorreporting_v1beta1.gapic + go: + package_name: cloud.google.com/go/errorreporting/apiv1beta1 + domain_layer_location: cloud.google.com/go/errorreporting + csharp: + package_name: Google.Cloud.ErrorReporting.V1Beta1 + ruby: + package_name: Google::Cloud::ErrorReporting::V1beta1 + php: + package_name: Google\Cloud\ErrorReporting\V1beta1 + nodejs: + package_name: errorreporting.v1beta1 + domain_layer_location: google-cloud +collections: +- name_pattern: projects/{project} + entity_name: project + language_overrides: + - language: csharp + common_resource_name: Google.Api.Gax.ResourceNames.ProjectName +- name_pattern: projects/{project}/groups/{group} + entity_name: group +interfaces: +- name: google.devtools.clouderrorreporting.v1beta1.ErrorGroupService + collections: + - name_pattern: projects/{project}/groups/{group} + entity_name: group + retry_codes_def: + - name: idempotent + retry_codes: + - UNAVAILABLE + - DEADLINE_EXCEEDED + - name: non_idempotent + retry_codes: [] + retry_params_def: + - name: default + initial_retry_delay_millis: 100 + retry_delay_multiplier: 1.3 + max_retry_delay_millis: 60000 + initial_rpc_timeout_millis: 20000 + rpc_timeout_multiplier: 1 + max_rpc_timeout_millis: 20000 + total_timeout_millis: 600000 + methods: + - name: GetGroup + flattening: + groups: + - parameters: + - group_name + required_fields: + - group_name + retry_codes_name: idempotent + retry_params_name: default + field_name_patterns: + group_name: group + resource_name_treatment: STATIC_TYPES + timeout_millis: 60000 + - name: UpdateGroup + flattening: + groups: + - parameters: + - group + required_fields: + - group + retry_codes_name: idempotent + retry_params_name: default + field_name_patterns: + group.name: group + resource_name_treatment: STATIC_TYPES + timeout_millis: 60000 +- name: google.devtools.clouderrorreporting.v1beta1.ReportErrorsService + smoke_test: + method: ReportErrorEvent + init_fields: + - project_name%project=$PROJECT_ID + - event.message="[MESSAGE]" + - event.service_context.service="[SERVICE]" + - event.context.report_location.file_path="path/to/file.lang" + - event.context.report_location.line_number=42 + - event.context.report_location.function_name="meaningOfLife" + collections: + - name_pattern: projects/{project} + entity_name: project + language_overrides: + - language: csharp + common_resource_name: Google.Api.Gax.ResourceNames.ProjectName + retry_codes_def: + - name: idempotent + retry_codes: + - UNAVAILABLE + - DEADLINE_EXCEEDED + - name: non_idempotent + retry_codes: [] + retry_params_def: + - name: default + initial_retry_delay_millis: 100 + retry_delay_multiplier: 1.3 + max_retry_delay_millis: 60000 + initial_rpc_timeout_millis: 20000 + rpc_timeout_multiplier: 1 + max_rpc_timeout_millis: 20000 + total_timeout_millis: 600000 + methods: + - name: ReportErrorEvent + flattening: + groups: + - parameters: + - project_name + - event + required_fields: + - project_name + - event + retry_codes_name: non_idempotent + retry_params_name: default + field_name_patterns: + project_name: project + resource_name_treatment: STATIC_TYPES + timeout_millis: 60000 +- name: google.devtools.clouderrorreporting.v1beta1.ErrorStatsService + collections: + - name_pattern: projects/{project} + entity_name: project + language_overrides: + - language: csharp + common_resource_name: Google.Api.Gax.ResourceNames.ProjectName + retry_codes_def: + - name: idempotent + retry_codes: + - UNAVAILABLE + - DEADLINE_EXCEEDED + - name: non_idempotent + retry_codes: [] + retry_params_def: + - name: default + initial_retry_delay_millis: 100 + retry_delay_multiplier: 1.3 + max_retry_delay_millis: 60000 + initial_rpc_timeout_millis: 20000 + rpc_timeout_multiplier: 1 + max_rpc_timeout_millis: 20000 + total_timeout_millis: 600000 + methods: + - name: ListGroupStats + flattening: + groups: + - parameters: + - project_name + - time_range + required_fields: + - project_name + - time_range + page_streaming: + request: + page_size_field: page_size + token_field: page_token + response: + token_field: next_page_token + resources_field: error_group_stats + retry_codes_name: idempotent + retry_params_name: default + field_name_patterns: + project_name: project + resource_name_treatment: STATIC_TYPES + timeout_millis: 60000 + - name: ListEvents + flattening: + groups: + - parameters: + - project_name + - group_id + required_fields: + - project_name + - group_id + page_streaming: + request: + page_size_field: page_size + token_field: page_token + response: + token_field: next_page_token + resources_field: error_events + retry_codes_name: idempotent + retry_params_name: default + field_name_patterns: + project_name: project + resource_name_treatment: STATIC_TYPES + timeout_millis: 60000 + - name: DeleteEvents + flattening: + groups: + - parameters: + - project_name + required_fields: + - project_name + retry_codes_name: idempotent + retry_params_name: default + field_name_patterns: + project_name: project + resource_name_treatment: STATIC_TYPES + timeout_millis: 60000 +resource_name_generation: +- message_name: ErrorGroup + field_entity_map: + name: group +- message_name: GetGroupRequest + field_entity_map: + group_name: group +- message_name: ListGroupStatsRequest + field_entity_map: + project_name: project +- message_name: ListEventsRequest + field_entity_map: + project_name: project +- message_name: DeleteEventsRequest + field_entity_map: + project_name: project +- message_name: ReportErrorEventRequest + field_entity_map: + project_name: project diff --git a/google/devtools/clouderrorreporting/v1beta1/errorreporting_gapic.yaml b/google/devtools/clouderrorreporting/v1beta1/errorreporting_gapic.yaml index c373fa8d..7b6703cc 100644 --- a/google/devtools/clouderrorreporting/v1beta1/errorreporting_gapic.yaml +++ b/google/devtools/clouderrorreporting/v1beta1/errorreporting_gapic.yaml @@ -1,5 +1,5 @@ type: com.google.api.codegen.ConfigProto -config_schema_version: 1.0.0 +config_schema_version: 2.0.0 language_settings: java: package_name: com.google.cloud.errorreporting.v1beta1 @@ -17,62 +17,7 @@ language_settings: nodejs: package_name: errorreporting.v1beta1 domain_layer_location: google-cloud -collections: -- name_pattern: projects/{project} - entity_name: project - language_overrides: - - language: csharp - common_resource_name: Google.Api.Gax.ResourceNames.ProjectName -- name_pattern: projects/{project}/groups/{group} - entity_name: group interfaces: -- name: google.devtools.clouderrorreporting.v1beta1.ErrorGroupService - collections: - - name_pattern: projects/{project}/groups/{group} - entity_name: group - retry_codes_def: - - name: idempotent - retry_codes: - - UNAVAILABLE - - DEADLINE_EXCEEDED - - name: non_idempotent - retry_codes: [] - retry_params_def: - - name: default - initial_retry_delay_millis: 100 - retry_delay_multiplier: 1.3 - max_retry_delay_millis: 60000 - initial_rpc_timeout_millis: 20000 - rpc_timeout_multiplier: 1 - max_rpc_timeout_millis: 20000 - total_timeout_millis: 600000 - methods: - - name: GetGroup - flattening: - groups: - - parameters: - - group_name - required_fields: - - group_name - retry_codes_name: idempotent - retry_params_name: default - field_name_patterns: - group_name: group - resource_name_treatment: STATIC_TYPES - timeout_millis: 60000 - - name: UpdateGroup - flattening: - groups: - - parameters: - - group - required_fields: - - group - retry_codes_name: idempotent - retry_params_name: default - field_name_patterns: - group.name: group - resource_name_treatment: STATIC_TYPES - timeout_millis: 60000 - name: google.devtools.clouderrorreporting.v1beta1.ReportErrorsService smoke_test: method: ReportErrorEvent @@ -83,141 +28,3 @@ interfaces: - event.context.report_location.file_path="path/to/file.lang" - event.context.report_location.line_number=42 - event.context.report_location.function_name="meaningOfLife" - collections: - - name_pattern: projects/{project} - entity_name: project - language_overrides: - - language: csharp - common_resource_name: Google.Api.Gax.ResourceNames.ProjectName - retry_codes_def: - - name: idempotent - retry_codes: - - UNAVAILABLE - - DEADLINE_EXCEEDED - - name: non_idempotent - retry_codes: [] - retry_params_def: - - name: default - initial_retry_delay_millis: 100 - retry_delay_multiplier: 1.3 - max_retry_delay_millis: 60000 - initial_rpc_timeout_millis: 20000 - rpc_timeout_multiplier: 1 - max_rpc_timeout_millis: 20000 - total_timeout_millis: 600000 - methods: - - name: ReportErrorEvent - flattening: - groups: - - parameters: - - project_name - - event - required_fields: - - project_name - - event - retry_codes_name: non_idempotent - retry_params_name: default - field_name_patterns: - project_name: project - resource_name_treatment: STATIC_TYPES - timeout_millis: 60000 -- name: google.devtools.clouderrorreporting.v1beta1.ErrorStatsService - collections: - - name_pattern: projects/{project} - entity_name: project - language_overrides: - - language: csharp - common_resource_name: Google.Api.Gax.ResourceNames.ProjectName - retry_codes_def: - - name: idempotent - retry_codes: - - UNAVAILABLE - - DEADLINE_EXCEEDED - - name: non_idempotent - retry_codes: [] - retry_params_def: - - name: default - initial_retry_delay_millis: 100 - retry_delay_multiplier: 1.3 - max_retry_delay_millis: 60000 - initial_rpc_timeout_millis: 20000 - rpc_timeout_multiplier: 1 - max_rpc_timeout_millis: 20000 - total_timeout_millis: 600000 - methods: - - name: ListGroupStats - flattening: - groups: - - parameters: - - project_name - - time_range - required_fields: - - project_name - - time_range - page_streaming: - request: - page_size_field: page_size - token_field: page_token - response: - token_field: next_page_token - resources_field: error_group_stats - retry_codes_name: idempotent - retry_params_name: default - field_name_patterns: - project_name: project - resource_name_treatment: STATIC_TYPES - timeout_millis: 60000 - - name: ListEvents - flattening: - groups: - - parameters: - - project_name - - group_id - required_fields: - - project_name - - group_id - page_streaming: - request: - page_size_field: page_size - token_field: page_token - response: - token_field: next_page_token - resources_field: error_events - retry_codes_name: idempotent - retry_params_name: default - field_name_patterns: - project_name: project - resource_name_treatment: STATIC_TYPES - timeout_millis: 60000 - - name: DeleteEvents - flattening: - groups: - - parameters: - - project_name - required_fields: - - project_name - retry_codes_name: idempotent - retry_params_name: default - field_name_patterns: - project_name: project - resource_name_treatment: STATIC_TYPES - timeout_millis: 60000 -resource_name_generation: -- message_name: ErrorGroup - field_entity_map: - name: group -- message_name: GetGroupRequest - field_entity_map: - group_name: group -- message_name: ListGroupStatsRequest - field_entity_map: - project_name: project -- message_name: ListEventsRequest - field_entity_map: - project_name: project -- message_name: DeleteEventsRequest - field_entity_map: - project_name: project -- message_name: ReportErrorEventRequest - field_entity_map: - project_name: project diff --git a/google/devtools/clouderrorreporting/v1beta1/errorreporting_grpc_service_config.json b/google/devtools/clouderrorreporting/v1beta1/errorreporting_grpc_service_config.json new file mode 100755 index 00000000..d2515bba --- /dev/null +++ b/google/devtools/clouderrorreporting/v1beta1/errorreporting_grpc_service_config.json @@ -0,0 +1,32 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService" + }, + { + "service": "google.devtools.clouderrorreporting.v1beta1.ErrorGroupService" + } + ], + "timeout": "600s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": [ + "UNAVAILABLE", + "DEADLINE_EXCEEDED" + ] + } + }, + { + "name": [ + { + "service": "google.devtools.clouderrorreporting.v1beta1.ReportErrorsService" + } + ], + "timeout": "600s" + } + ] +} diff --git a/google/devtools/clouderrorreporting/v1beta1/report_errors_service.proto b/google/devtools/clouderrorreporting/v1beta1/report_errors_service.proto index d77f646c..fe80fcef 100644 --- a/google/devtools/clouderrorreporting/v1beta1/report_errors_service.proto +++ b/google/devtools/clouderrorreporting/v1beta1/report_errors_service.proto @@ -1,4 +1,4 @@ -// Copyright 2016 Google Inc. +// Copyright 2019 Google LLC. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -11,15 +11,20 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. +// syntax = "proto3"; package google.devtools.clouderrorreporting.v1beta1; import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; import "google/devtools/clouderrorreporting/v1beta1/common.proto"; import "google/protobuf/timestamp.proto"; +option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.ErrorReporting.V1Beta1"; option go_package = "google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1;clouderrorreporting"; option java_multiple_files = true; @@ -29,57 +34,87 @@ option php_namespace = "Google\\Cloud\\ErrorReporting\\V1beta1"; // An API for reporting error events. service ReportErrorsService { + option (google.api.default_host) = "clouderrorreporting.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + // Report an individual error event. // - // This endpoint accepts either an OAuth token, - // or an - // API key + // This endpoint accepts **either** an OAuth token, + // **or** an [API key](https://support.google.com/cloud/answer/6158862) // for authentication. To use an API key, append it to the URL as the value of // a `key` parameter. For example: - //
POST
-  // https://clouderrorreporting.googleapis.com/v1beta1/projects/example-project/events:report?key=123ABC456
- rpc ReportErrorEvent(ReportErrorEventRequest) - returns (ReportErrorEventResponse) { + // + // `POST + // https://clouderrorreporting.googleapis.com/v1beta1/projects/example-project/events:report?key=123ABC456` + rpc ReportErrorEvent(ReportErrorEventRequest) returns (ReportErrorEventResponse) { option (google.api.http) = { post: "/v1beta1/{project_name=projects/*}/events:report" body: "event" }; + option (google.api.method_signature) = "project_name,event"; } } // A request for reporting an individual error event. message ReportErrorEventRequest { - // [Required] The resource name of the Google Cloud Platform project. Written + // Required. The resource name of the Google Cloud Platform project. Written // as `projects/` plus the // [Google Cloud Platform project // ID](https://support.google.com/cloud/answer/6158840). Example: // `projects/my-project-123`. - string project_name = 1; + string project_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; - // [Required] The error event to be reported. - ReportedErrorEvent event = 2; + // Required. The error event to be reported. + ReportedErrorEvent event = 2 [(google.api.field_behavior) = REQUIRED]; } // Response for reporting an individual error event. // Data may be added to this message in the future. -message ReportErrorEventResponse {} +message ReportErrorEventResponse { + +} // An error event which is reported to the Error Reporting system. message ReportedErrorEvent { - // [Optional] Time when the event occurred. + // Optional. Time when the event occurred. // If not provided, the time when the event was received by the // Error Reporting system will be used. - google.protobuf.Timestamp event_time = 1; + google.protobuf.Timestamp event_time = 1 [(google.api.field_behavior) = OPTIONAL]; - // [Required] The service context in which this error has occurred. - ServiceContext service_context = 2; + // Required. The service context in which this error has occurred. + ServiceContext service_context = 2 [(google.api.field_behavior) = REQUIRED]; - // [Required] A message describing the error. The message can contain an - // exception stack in one of the supported programming languages and formats. - // In that case, the message is parsed and detailed exception information - // is returned when retrieving the error event again. - string message = 3; + // Required. The error message. + // If no `context.reportLocation` is provided, the message must contain a + // header (typically consisting of the exception type name and an error + // message) and an exception stack trace in one of the supported programming + // languages and formats. + // Supported languages are Java, Python, JavaScript, Ruby, C#, PHP, and Go. + // Supported stack trace formats are: + // + // * **Java**: Must be the return value of + // [`Throwable.printStackTrace()`](https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html#printStackTrace%28%29). + // * **Python**: Must be the return value of + // [`traceback.format_exc()`](https://docs.python.org/2/library/traceback.html#traceback.format_exc). + // * **JavaScript**: Must be the value of + // [`error.stack`](https://github.com/v8/v8/wiki/Stack-Trace-API) as returned + // by V8. + // * **Ruby**: Must contain frames returned by + // [`Exception.backtrace`](https://ruby-doc.org/core-2.2.0/Exception.html#method-i-backtrace). + // * **C#**: Must be the return value of + // [`Exception.ToString()`](https://msdn.microsoft.com/en-us/library/system.exception.tostring.aspx). + // * **PHP**: Must start with `PHP (Notice|Parse error|Fatal error|Warning)` + // and contain the result of + // [`(string)$exception`](http://php.net/manual/en/exception.tostring.php). + // * **Go**: Must be the return value of + // [`runtime.Stack()`](https://golang.org/pkg/runtime/debug/#Stack). + string message = 3 [(google.api.field_behavior) = REQUIRED]; - // [Optional] A description of the context in which the error occurred. - ErrorContext context = 4; + // Optional. A description of the context in which the error occurred. + ErrorContext context = 4 [(google.api.field_behavior) = OPTIONAL]; }