From 9aa47074abdfa87ce8359fa3ff270b8402b8a1c1 Mon Sep 17 00:00:00 2001 From: Google APIs Date: Wed, 19 Aug 2020 11:41:32 -0700 Subject: [PATCH] chore: remove IRM API protos/configs from googleapis PiperOrigin-RevId: 327475078 --- google/cloud/irm/BUILD.bazel | 1 - google/cloud/irm/irm_v1alpha2.yaml | 23 - google/cloud/irm/v1alpha2/BUILD.bazel | 364 ------ google/cloud/irm/v1alpha2/incidents.proto | 528 -------- .../irm/v1alpha2/incidents_service.proto | 1064 ----------------- .../cloud/irm/v1alpha2/irm_gapic.legacy.yaml | 723 ----------- google/cloud/irm/v1alpha2/irm_gapic.yaml | 86 -- .../irm/v1alpha2/irm_grpc_service_config.json | 151 --- google/cloud/irm/v1alpha2/irm_v1alpha2.yaml | 23 - 9 files changed, 2963 deletions(-) delete mode 100644 google/cloud/irm/BUILD.bazel delete mode 100644 google/cloud/irm/irm_v1alpha2.yaml delete mode 100644 google/cloud/irm/v1alpha2/BUILD.bazel delete mode 100644 google/cloud/irm/v1alpha2/incidents.proto delete mode 100644 google/cloud/irm/v1alpha2/incidents_service.proto delete mode 100644 google/cloud/irm/v1alpha2/irm_gapic.legacy.yaml delete mode 100644 google/cloud/irm/v1alpha2/irm_gapic.yaml delete mode 100755 google/cloud/irm/v1alpha2/irm_grpc_service_config.json delete mode 100644 google/cloud/irm/v1alpha2/irm_v1alpha2.yaml diff --git a/google/cloud/irm/BUILD.bazel b/google/cloud/irm/BUILD.bazel deleted file mode 100644 index a87c57fe..00000000 --- a/google/cloud/irm/BUILD.bazel +++ /dev/null @@ -1 +0,0 @@ -exports_files(glob(["*.yaml"])) diff --git a/google/cloud/irm/irm_v1alpha2.yaml b/google/cloud/irm/irm_v1alpha2.yaml deleted file mode 100644 index 361cfff6..00000000 --- a/google/cloud/irm/irm_v1alpha2.yaml +++ /dev/null @@ -1,23 +0,0 @@ -type: google.api.Service -config_version: 3 -name: irm.googleapis.com -title: Stackdriver Incident Response & Management API - -apis: -- name: google.cloud.irm.v1alpha2.IncidentService - -documentation: - overview: |- - The Stackdriver Incident Response & Management API allows users of - Stackdriver to retrieve their signals, group signals into incidents, - retrieve and modify existing incidents, and manage user roles. It also - provides access to functionality related to the incident management - process such as escalating incidents and performing handoffs at the end of - an oncall shift. - -authentication: - rules: - - selector: 'google.cloud.irm.v1alpha2.IncidentService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/irm/v1alpha2/BUILD.bazel b/google/cloud/irm/v1alpha2/BUILD.bazel deleted file mode 100644 index f202a222..00000000 --- a/google/cloud/irm/v1alpha2/BUILD.bazel +++ /dev/null @@ -1,364 +0,0 @@ -# This file was automatically generated by BuildFileGenerator - -# This is an API workspace, having public visibility by default makes perfect sense. -package(default_visibility = ["//visibility:public"]) - -############################################################################## -# Common -############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") -load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") - -proto_library( - name = "irm_proto", - srcs = [ - "incidents.proto", - "incidents_service.proto", - ], - deps = [ - "//google/api:annotations_proto", - "//google/api:client_proto", - "//google/api:field_behavior_proto", - "//google/api:resource_proto", - "@com_google_protobuf//:empty_proto", - "@com_google_protobuf//:field_mask_proto", - "@com_google_protobuf//:timestamp_proto", - ], -) - -proto_library_with_info( - name = "irm_proto_with_info", - deps = [ - ":irm_proto", - "//google/cloud:common_resources_proto", - ], -) - -############################################################################## -# Java -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "java_gapic_assembly_gradle_pkg", - "java_gapic_library", - "java_gapic_test", - "java_grpc_library", - "java_proto_library", -) - -java_proto_library( - name = "irm_java_proto", - deps = [":irm_proto"], -) - -java_grpc_library( - name = "irm_java_grpc", - srcs = [":irm_proto"], - deps = [":irm_java_proto"], -) - -java_gapic_library( - name = "irm_java_gapic", - src = ":irm_proto_with_info", - gapic_yaml = "irm_gapic.yaml", - package = "google.cloud.irm.v1alpha2", - service_yaml = "//google/cloud/irm:irm_v1alpha2.yaml", - test_deps = [ - ":irm_java_grpc", - ], - deps = [ - ":irm_java_proto", - ], -) - -java_gapic_test( - name = "irm_java_gapic_test_suite", - test_classes = [ - "com.google.cloud.irm.v1alpha2.IncidentServiceClientTest", - ], - runtime_deps = [":irm_java_gapic_test"], -) - -# Open Source Packages -java_gapic_assembly_gradle_pkg( - name = "google-cloud-irm-v1alpha2-java", - deps = [ - ":irm_java_gapic", - ":irm_java_grpc", - ":irm_java_proto", - ":irm_proto", - ], -) - -############################################################################## -# Go -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "go_gapic_assembly_pkg", - "go_gapic_library", - "go_proto_library", - "go_test", -) - -go_proto_library( - name = "irm_go_proto", - compilers = ["@io_bazel_rules_go//proto:go_grpc"], - importpath = "google.golang.org/genproto/googleapis/cloud/irm/v1alpha2", - protos = [":irm_proto"], - deps = [ - "//google/api:annotations_go_proto", - ], -) - -go_gapic_library( - name = "irm_go_gapic", - srcs = [":irm_proto_with_info"], - grpc_service_config = "irm_grpc_service_config.json", - importpath = "cloud.google.com/go/irm/apiv1alpha2;irm", - service_yaml = "//google/cloud/irm:irm_v1alpha2.yaml", - deps = [ - ":irm_go_proto", - ], -) - -go_test( - name = "irm_go_gapic_test", - srcs = [":irm_go_gapic_srcjar_test"], - embed = [":irm_go_gapic"], - importpath = "cloud.google.com/go/irm/apiv1alpha2", -) - -# Open Source Packages -go_gapic_assembly_pkg( - name = "gapi-cloud-irm-v1alpha2-go", - deps = [ - ":irm_go_gapic", - ":irm_go_gapic_srcjar-test.srcjar", - ":irm_go_proto", - ], -) - -############################################################################## -# Python -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "moved_proto_library", - "py_gapic_assembly_pkg", - "py_gapic_library", - "py_grpc_library", - "py_proto_library", -) - -moved_proto_library( - name = "irm_moved_proto", - srcs = [":irm_proto"], - deps = [ - "//google/api:annotations_proto", - "//google/api:client_proto", - "//google/api:field_behavior_proto", - "//google/api:resource_proto", - "@com_google_protobuf//:empty_proto", - "@com_google_protobuf//:field_mask_proto", - "@com_google_protobuf//:timestamp_proto", - ], -) - -py_proto_library( - name = "irm_py_proto", - plugin = "@protoc_docs_plugin//:docs_plugin", - deps = [":irm_moved_proto"], -) - -py_grpc_library( - name = "irm_py_grpc", - srcs = [":irm_moved_proto"], - deps = [":irm_py_proto"], -) - -py_gapic_library( - name = "irm_py_gapic", - src = ":irm_proto_with_info", - gapic_yaml = "irm_gapic.yaml", - package = "google.cloud.irm.v1alpha2", - service_yaml = "//google/cloud/irm:irm_v1alpha2.yaml", - deps = [ - ":irm_py_grpc", - ":irm_py_proto", - ], -) - -# Open Source Packages -py_gapic_assembly_pkg( - name = "irm-v1alpha2-py", - deps = [ - ":irm_py_gapic", - ":irm_py_grpc", - ":irm_py_proto", - ], -) - -############################################################################## -# PHP -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "php_gapic_assembly_pkg", - "php_gapic_library", - "php_grpc_library", - "php_proto_library", -) - -php_proto_library( - name = "irm_php_proto", - deps = [":irm_proto"], -) - -php_grpc_library( - name = "irm_php_grpc", - srcs = [":irm_proto"], - deps = [":irm_php_proto"], -) - -php_gapic_library( - name = "irm_php_gapic", - src = ":irm_proto_with_info", - gapic_yaml = "irm_gapic.yaml", - package = "google.cloud.irm.v1alpha2", - service_yaml = "//google/cloud/irm:irm_v1alpha2.yaml", - deps = [ - ":irm_php_grpc", - ":irm_php_proto", - ], -) - -# Open Source Packages -php_gapic_assembly_pkg( - name = "google-cloud-irm-v1alpha2-php", - deps = [ - ":irm_php_gapic", - ":irm_php_grpc", - ":irm_php_proto", - ], -) - -############################################################################## -# Node.js -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "nodejs_gapic_assembly_pkg", - "nodejs_gapic_library", -) - -nodejs_gapic_library( - name = "irm_nodejs_gapic", - package_name = "@google-cloud/irm", - src = ":irm_proto_with_info", - grpc_service_config = "irm_grpc_service_config.json", - package = "google.cloud.irm.v1alpha2", - service_yaml = "//google/cloud/irm:irm_v1alpha2.yaml", - deps = [], -) - -nodejs_gapic_assembly_pkg( - name = "irm-v1alpha2-nodejs", - deps = [ - ":irm_nodejs_gapic", - ":irm_proto", - ], -) - -############################################################################## -# Ruby -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "ruby_gapic_assembly_pkg", - "ruby_gapic_library", - "ruby_grpc_library", - "ruby_proto_library", -) - -ruby_proto_library( - name = "irm_ruby_proto", - deps = [":irm_proto"], -) - -ruby_grpc_library( - name = "irm_ruby_grpc", - srcs = [":irm_proto"], - deps = [":irm_ruby_proto"], -) - -ruby_gapic_library( - name = "irm_ruby_gapic", - src = ":irm_proto_with_info", - gapic_yaml = "irm_gapic.yaml", - package = "google.cloud.irm.v1alpha2", - service_yaml = "//google/cloud/irm:irm_v1alpha2.yaml", - deps = [ - ":irm_ruby_grpc", - ":irm_ruby_proto", - ], -) - -# Open Source Packages -ruby_gapic_assembly_pkg( - name = "google-cloud-irm-v1alpha2-ruby", - deps = [ - ":irm_ruby_gapic", - ":irm_ruby_grpc", - ":irm_ruby_proto", - ], -) - -############################################################################## -# C# -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "csharp_gapic_assembly_pkg", - "csharp_gapic_library", - "csharp_grpc_library", - "csharp_proto_library", -) - -csharp_proto_library( - name = "irm_csharp_proto", - deps = [":irm_proto"], -) - -csharp_grpc_library( - name = "irm_csharp_grpc", - srcs = [":irm_proto"], - deps = [":irm_csharp_proto"], -) - -csharp_gapic_library( - name = "irm_csharp_gapic", - src = ":irm_proto_with_info", - gapic_yaml = "irm_gapic.yaml", - package = "google.cloud.irm.v1alpha2", - service_yaml = "//google/cloud/irm:irm_v1alpha2.yaml", - deps = [ - ":irm_csharp_grpc", - ":irm_csharp_proto", - ], -) - -# Open Source Packages -csharp_gapic_assembly_pkg( - name = "google-cloud-irm-v1alpha2-csharp", - deps = [ - ":irm_csharp_gapic", - ":irm_csharp_grpc", - ":irm_csharp_proto", - ], -) - -############################################################################## -# C++ -############################################################################## -# Put your C++ rules here diff --git a/google/cloud/irm/v1alpha2/incidents.proto b/google/cloud/irm/v1alpha2/incidents.proto deleted file mode 100644 index e4eb3b30..00000000 --- a/google/cloud/irm/v1alpha2/incidents.proto +++ /dev/null @@ -1,528 +0,0 @@ -// 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. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// 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.cloud.irm.v1alpha2; - -import "google/api/annotations.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/protobuf/timestamp.proto"; - -option cc_enable_arenas = true; -option go_package = "google.golang.org/genproto/googleapis/cloud/irm/v1alpha2;irm"; -option java_multiple_files = true; -option java_package = "com.google.irm.service.v1alpha2.api"; - -// A user of the IRM app. -message User { - // One of several ways to uniquely identify a user. - oneof user { - // Output only. User id that will allow to get additional information from - // People API. This field will be populated implicitly if the caller creates - // or edits a resource (for example, posts an annotation). - string user_id = 1; - - // Email address of the user. This must be associated with a Google account. - // This field will be set if the user is explicitly identified (verbatim) by - // email address in an API request (potentially sometime in the past). It - // will not be populated based on the credentials of a caller of the API. - string email = 2; - } -} - -// A signal is a message calling attention to a (potential) incident. An example -// is a page based on a Stackdriver Alerting policy. -message Signal { - option (google.api.resource) = { - type: "irm.googleapis.com/Signal" - pattern: "projects/{project}/signals/{signal}" - }; - - // An artifact associated with the Signal. - message SignalArtifact { - // The type of resource linked to - oneof artifact_type { - // A custom user type - string user_type = 2; - } - - // The URI for the artifact. - string uri = 3; - } - - // Describes whether the alerting condition is still firing. - enum State { - // Unspecified - STATE_UNSPECIFIED = 0; - - // Firing - STATE_OPEN = 1; - - // Non-firing - STATE_CLOSED = 2; - } - - // Resource name of the signal, for example, - // "projects/{project_id_or_number}/signals/{signal_id}". - string name = 1; - - // Etag to validate the object is unchanged for a read-modify-write operation. - // An empty etag will overwrite other changes. - string etag = 2; - - // Resource name of the incident this signal is currently assigned to. - // May be empty if signal is unassigned. - string incident = 3; - - // Output only. Time this signal was created. - google.protobuf.Timestamp create_time = 4; - - // Output only. Time this signal was closed. This field is not populated - // while the signal is still firing. - google.protobuf.Timestamp close_time = 10; - - // The time this Signal was first detected. This is identical to create_time - // for Signals created by Stackdriver Alerting. - google.protobuf.Timestamp detect_time = 15; - - // Output only. The user that created this signal for manually created - // signals. Empty if this signal was generated by a system (for example, - // Stackdriver Alerting). - User creator = 5; - - // One-line summary of the signal. - // Immutable. - string title = 6; - - // Content type string. 'text/plain' is currently the only supported content - // type for Signals created via the API. Signals created by Stackdriver - // Alerting support 'text/html' as well. Immutable for Signals created by - // Stackdriver Alerting. - string content_type = 7; - - // Full message of the signal. - // Immutable for Signals created by Stackdriver Alerting. - string content = 8; - - // The state of this signal. - // For Signals created by Stackdriver Alerting this field is output only. - State signal_state = 9; - - // A set of artifacts to additional resources for this Signal. For example, a - // link to Stackdriver logging for the Signal. - // Immutable for Signals created by Stackdriver Alerting. - repeated SignalArtifact signal_artifacts = 16; -} - -// A text annotation by a user. -message Annotation { - option (google.api.resource) = { - type: "irm.googleapis.com/Annotation" - pattern: "projects/{project}/incidents/{incident}/annotations/{annotation}" - }; - - // Resource name of the annotation, for example, - // "projects/{project_id_or_number}/incidents/{incident_id}/annotations/{annotation_id}". - string name = 1; - - // Output only. Author of the annotation. - User author = 2; - - // Output only. Time the annotation was created. - google.protobuf.Timestamp create_time = 3; - - // Content of the annotation. - string content = 4; - - // Content type of the annotation, for example, 'text/plain' - // or 'text/markdown'. - string content_type = 5; -} - -// A tag by a user. -message Tag { - option (google.api.resource) = { - type: "irm.googleapis.com/Tag" - pattern: "projects/{project}/incidents/{incident}/tags/{tag}" - }; - - // Resource name of a tag, for example, - // "projects/{project_id_or_number}/incidents/{incident_id}/tags/{tag_id}" - string name = 1; - - // Display name of the resource (for example, "cause:rollout"). Immutable. - string display_name = 2; -} - -// Synopsis is a summary of an incident and it contains a textual content, -// an author and a last updated timestamp. -message Synopsis { - // Content type string, for example, 'text/plain' or 'text/markdown'. - string content_type = 1; - - // Textual content of the synopsis. It can be plain text or markdown as - // indicated by the content_type. - string content = 2; - - // Last updated timestamp. - google.protobuf.Timestamp update_time = 3; - - // Author of the synopsis. - User author = 4; -} - -// Representation of an incident. -message Incident { - option (google.api.resource) = { - type: "irm.googleapis.com/Incident" - pattern: "projects/{project}/incidents/{incident}" - }; - - // CommunicationVenue is a record of where conversations about an incident - // are happening. - message CommunicationVenue { - // The type of channel/venue for incident communications. - enum ChannelType { - // An unspecified communication channel. - CHANNEL_TYPE_UNSPECIFIED = 0; - - // A communication channel that is represented by a generic URI. - CHANNEL_TYPE_URI = 1; - - // A communication channel that represents a Slack channel. - CHANNEL_TYPE_SLACK = 5; - } - - // A URI to the web interface of the channel. - string uri = 1; - - // A name representing the channel in IRM UI. - string display_name = 2; - - // The type of channel/venue for incident communications. - ChannelType channel_type = 3; - } - - // Specifies the escalation level of this incident, within the IRM protocol - // for handling incidents. - enum EscalationLevel { - // The incident has not been escalated. This is the value used by all new - // and legacy incidents. - ESCALATION_LEVEL_UNSPECIFIED = 0; - - // The incident has been escalated to the organizational level. - ESCALATION_LEVEL_ORGANIZATION = 1; - } - - // Severity of an incident. - enum Severity { - // Severity is not specified. - SEVERITY_UNSPECIFIED = 0; - - // Huge incident. - SEVERITY_HUGE = 1; - - // Major incident. - SEVERITY_MAJOR = 2; - - // Medium incident. - SEVERITY_MEDIUM = 3; - - // Minor incident. - SEVERITY_MINOR = 4; - - // Negligible incident. - SEVERITY_NEGLIGIBLE = 5; - } - - // Stage of an incident. - enum Stage { - // This is the default value if no stage has been specified. - // Note: The caller of the API should set the stage to DETECTED. - STAGE_UNSPECIFIED = 0; - - // The incident has been detected. This is the initial stage of a new - // incident. - // Note: The caller still has to set the stage manually. - STAGE_DETECTED = 4; - - // This incident has been formally characterized. - STAGE_TRIAGED = 1; - - // This incident has been mitigated, i.e. does not affect the service level - // anymore. - STAGE_MITIGATED = 2; - - // This incident has been fully resolved, i.e. there are no immediate - // follow-up tasks. - STAGE_RESOLVED = 3; - - // Postmortem for the incident was written. - STAGE_DOCUMENTED = 5; - - // Stage for an incident with `duplicate_incident`. This incident is not - // authoritative anymore and the `duplicate_incident` should be used to - // determine the stage. - STAGE_DUPLICATE = 6; - } - - // Output only. Resource name of the incident, for example, - // "projects/{project_id_or_number}/incidents/{incident_id}". - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // One-line summary of the incident. - string title = 2; - - // Escalation level of the incident. - EscalationLevel escalation_level = 3; - - // Etag to validate the object is unchanged for a read-modify-write operation. - // An empty etag will overwrite other changes. - string etag = 4; - - // Severity of the incident. - Severity severity = 5; - - // Stage of the incident. - Stage stage = 6; - - // Resource name of the incident this incident is a duplicate of. Empty if - // this incident is not a duplicate. - // An incident can only be a duplicate of an incident that is not marked as a - // duplicate already. Setting this to a non-empty value must also set the - // stage to `STAGE_DUPLICATE`. Unsetting this value value must also update - // `stage` to a value other than `STAGE_DUPLICATE`. - string duplicate_incident = 9; - - // Output only. Time this incident started. Used to measure the 'elapsed - // time'. Start time of an incident is the earliest creation time of any of - // its Signals or the create time of the incident if no Signals are assigned. - google.protobuf.Timestamp start_time = 7; - - // Output only. Synopsis of this incident. - Synopsis synopsis = 8; - - // Location of communications for this incident. This is informational - // only; IRM does not use this to send messages. - CommunicationVenue communication_venue = 10; -} - -// Describes a role that can be assigned to an incident. -message IncidentRole { - // List of possible roles. - enum Type { - // The role is unspecified. - TYPE_UNSPECIFIED = 0; - - // Incident Commander: Manages response plan, near-term and long-term - // objectives, establishes priorities, and delegates tasks as needed. - TYPE_INCIDENT_COMMANDER = 1; - - // Communications Lead: Keeps everybody outside and within the response team - // informed. - TYPE_COMMUNICATIONS_LEAD = 2; - - // Operations Lead: Figures out what to do, and gets it done. - TYPE_OPERATIONS_LEAD = 3; - - // External Customer Communications Lead: Responsible for communicating - // incident details to customers/public. - TYPE_EXTERNAL_CUSTOMER_COMMUNICATIONS_LEAD = 4; - - // Primary Oncall: Responds to the initial page and handles all - // responsibilities for pre-escalated incidents. - TYPE_PRIMARY_ONCALL = 5; - - // Secondary Oncall: Helps the primary oncall if necessary; mostly useful - // for pre-escalated incidents. - TYPE_SECONDARY_ONCALL = 6; - - // User-specified roles. One example is a Planning Lead, who keeps track of - // the incident. Another is an assistant Incident Commander. - TYPE_OTHER = 7; - } - - // The type of role. The role type is immutable in role assignments. Each role - // type can only be used once per incident, except for TYPE_OTHER. - Type type = 1; - - // Output only and empty unless TYPE_OTHER is used. Title of the role. For - // TYPE_OTHER, must be unique within an incident. - string title = 2; - - // Output only and empty unless TYPE_OTHER is used. Description of the role. - string description = 3; -} - -// Stores the assignee of a role as well as the proposed next assignee. -message IncidentRoleAssignment { - option (google.api.resource) = { - type: "irm.googleapis.com/IncidentRoleAssignment" - pattern: "projects/{project_id_or_number}/incidents/{incident_id}/role_assignments/{role_id}" - }; - - // Output only. Resource name such as - // "projects/{project_id_or_number}/incidents/{incident_id}/role_assignments/{role_id}". - string name = 1; - - // Output only. Etag for this version of the resource. Must be specified in - // update requests and match the current version in storage. Must not be - // modified by the client. - string etag = 2; - - // The role that is or will be assigned. - IncidentRole role = 3; - - // The user this role is assigned to. This field can only be directly set - // during creation request. Subsequent updates are done via the - // IncidentRoleHandover methods. - User assignee = 4; - - // The recipient of a requested role handoff. This field can only be directly - // set during creation request. Subsequent updates are done via the - // IncidentRoleHandover methods. - // - // `assignee` is always the current role-holder, and `proposed_assignee` is - // used to track unfinished assignments and handoffs. Let's say Bob assigns - // Alice to a role. Then the fields are: - // `assignee`: nil, `proposed_assignee`: Alice - // If Alice accepts, then the fields are: - // `assignee`: Alice, `proposed_assignee`: nil - // If she cancels, then the RoleAssignment is deleted. - // Let's say Alice has the role. Then the fields are: - // `assignee`: Alice, `proposed_assignee`: nil - // If Alice becomes incapacitated and Bob requests Carol to take over, then - // the fields are: - // `assignee`: Alice, `proposed_assignee`: Carol - // After Carol accepts the handover, the fields are: - // `assignee`: Carol, `proposed_assignee`: nil - // Or if Carol refuses the handover, the fields are: - // `assignee`: Alice, `proposed_assignee`: nil - User proposed_assignee = 5; -} - -// External artifact associated to an incident. -message Artifact { - option (google.api.resource) = { - type: "irm.googleapis.com/Artifact" - pattern: "projects/{project}/incidents/{incident}/artifacts/{artifact}" - }; - - // Possible types of an artifact. - enum Type { - // External type is unspecified. - TYPE_UNSPECIFIED = 0; - - // URL. - TYPE_URL = 1; - - // A JIRA issue. - TYPE_JIRA_ISSUE = 4; - } - - // Output only. Resource name such as - // "projects/{project_id_or_number}/incidents/{incident_id}/artifacts/{artifact_id}". - string name = 1; - - // User provided name of an artifact. - string display_name = 2; - - // Output only. Etag for this version of the resource. Must be specified in - // update requests and match the current version in storage. Must not be - // modified by the client. - string etag = 3; - - // URL to access the artifact. - string url = 4; - - // Type of this artifact. - Type type = 5; -} - -// Communication Channels are mechanisms used to receive notifications -// about changes to incidents. -message CommunicationChannel { - // A communication channel that delivers messages to an email address. - message Email { - // The email address, for example, "user@example.com". - string address = 1; - } - - // A communication channel that delivers messages to a Stackdriver - // notification channel. - message NotificationChannel { - // Stackdriver notification channel name. - string name = 1; - } - - // An endpoint describes how messages will be delivered. - oneof endpoint { - // Messages will be delivered via email. - Email email = 1; - - // Messages will be delivered via a Stackdriver notification channel. - NotificationChannel notification_channel = 2; - } -} - -// A subscription allows users to get notifications about changes to -// an incident. -message Subscription { - option (google.api.resource) = { - type: "irm.googleapis.com/Subscription" - pattern: "projects/{project}/incidents/{incident}/subscriptions/{subscription}" - }; - - // Types of changes that users can subscribe to in an incident. - enum EventType { - // An event_type that's not specified is an error. - EVENT_TYPE_UNSPECIFIED = 0; - - // The incident's title has changed. - EVENT_TYPE_TITLE_CHANGE = 1; - - // The incident's synopsis has changed. - EVENT_TYPE_SYNOPSIS_CHANGE = 2; - - // The incident's stage has changed. - EVENT_TYPE_STAGE_CHANGE = 3; - - // The incident's severity has changed. - EVENT_TYPE_SEVERITY_CHANGE = 4; - - // A new annotation has been added to the incident. - EVENT_TYPE_ANNOTATION_ADD = 5; - - // An annotation has been modified. - EVENT_TYPE_ANNOTATION_CHANGE = 6; - } - - // Output only. Resource name such as - // "projects/{project_id_or_number}/incidents/{incident_id}/subscriptions/{subscription_id}". - string name = 1; - - // Output only. Etag for this version of the resource. Must be specified in - // update requests and match the current version in storage. Must not be - // modified by the client. - string etag = 2; - - // A communications channel to send subscription messages to. - CommunicationChannel subscription_channel = 3; - - // Types of events this subscription receives notifications for. - repeated EventType event_types = 4; -} diff --git a/google/cloud/irm/v1alpha2/incidents_service.proto b/google/cloud/irm/v1alpha2/incidents_service.proto deleted file mode 100644 index 8546d42b..00000000 --- a/google/cloud/irm/v1alpha2/incidents_service.proto +++ /dev/null @@ -1,1064 +0,0 @@ -// 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. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// 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.cloud.irm.v1alpha2; - -import "google/api/annotations.proto"; -import "google/api/client.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/cloud/irm/v1alpha2/incidents.proto"; -import "google/protobuf/empty.proto"; -import "google/protobuf/field_mask.proto"; -import "google/protobuf/timestamp.proto"; - -option cc_enable_arenas = true; -option go_package = "google.golang.org/genproto/googleapis/cloud/irm/v1alpha2;irm"; -option java_multiple_files = true; -option java_package = "com.google.irm.service.v1alpha2.api"; - -// The Incident API for Incident Response & Management. -service IncidentService { - option (google.api.default_host) = "irm.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; - - // Creates a new incident. - rpc CreateIncident(CreateIncidentRequest) returns (Incident) { - option (google.api.http) = { - post: "/v1alpha2/{parent=projects/*}/incidents" - body: "incident" - }; - option (google.api.method_signature) = "incident,parent"; - } - - // Returns an incident by name. - rpc GetIncident(GetIncidentRequest) returns (Incident) { - option (google.api.http) = { - get: "/v1alpha2/{name=projects/*/incidents/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Returns a list of incidents. - // Incidents are ordered by start time, with the most recent incidents first. - rpc SearchIncidents(SearchIncidentsRequest) - returns (SearchIncidentsResponse) { - option (google.api.http) = { - get: "/v1alpha2/{parent=projects/*}/incidents:search" - }; - option (google.api.method_signature) = "parent,query,time_zone"; - } - - // Updates an existing incident. - rpc UpdateIncident(UpdateIncidentRequest) returns (Incident) { - option (google.api.http) = { - patch: "/v1alpha2/{incident.name=projects/*/incidents/*}" - body: "incident" - }; - option (google.api.method_signature) = "incident,update_mask"; - } - - // Returns a list of incidents that are "similar" to the specified incident - // or signal. This functionality is provided on a best-effort basis and the - // definition of "similar" is subject to change. - rpc SearchSimilarIncidents(SearchSimilarIncidentsRequest) returns (SearchSimilarIncidentsResponse) { - option (google.api.http) = { - get: "/v1alpha2/{name=projects/*/incidents/*}:searchSimilar" - additional_bindings { - get: "/v1alpha2/{name=projects/*/signals/*}:searchSimilarIncidents" - } - }; - option (google.api.method_signature) = "name"; - } - - // Creates an annotation on an existing incident. Only 'text/plain' and - // 'text/markdown' annotations can be created via this method. - rpc CreateAnnotation(CreateAnnotationRequest) returns (Annotation) { - option (google.api.http) = { - post: "/v1alpha2/{parent=projects/*/incidents/*}/annotations" - body: "annotation" - }; - option (google.api.method_signature) = "parent,annotation"; - } - - // Lists annotations that are part of an incident. No assumptions should be - // made on the content-type of the annotation returned. - rpc ListAnnotations(ListAnnotationsRequest) returns (ListAnnotationsResponse) { - option (google.api.http) = { - get: "/v1alpha2/{parent=projects/*/incidents/*}/annotations" - }; - option (google.api.method_signature) = "parent"; - } - - // Creates a tag on an existing incident. - rpc CreateTag(CreateTagRequest) returns (Tag) { - option (google.api.http) = { - post: "/v1alpha2/{parent=projects/*/incidents/*}/tags" - body: "tag" - }; - option (google.api.method_signature) = "parent,tag"; - } - - // Deletes an existing tag. - rpc DeleteTag(DeleteTagRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1alpha2/{name=projects/*/incidents/*/tags/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Lists tags that are part of an incident. - rpc ListTags(ListTagsRequest) returns (ListTagsResponse) { - option (google.api.http) = { - get: "/v1alpha2/{parent=projects/*/incidents/*}/tags" - }; - option (google.api.method_signature) = "parent"; - } - - // Creates a new signal. - rpc CreateSignal(CreateSignalRequest) returns (Signal) { - option (google.api.http) = { - post: "/v1alpha2/{parent=projects/*}/signals" - body: "signal" - }; - option (google.api.method_signature) = "parent,signal"; - } - - // Lists signals that are part of an incident. - // Signals are returned in reverse chronological order. - // Note that search should not be relied on for critical functionality. It - // has lower availability guarantees and might fail to return valid results. - // Returned results might include stale or extraneous entries. - rpc SearchSignals(SearchSignalsRequest) returns (SearchSignalsResponse) { - option (google.api.http) = { - get: "/v1alpha2/{parent=projects/*}/signals:search" - }; - option (google.api.method_signature) = "parent,query"; - } - - // Finds a signal by other unique IDs. - rpc LookupSignal(LookupSignalRequest) returns (Signal) { - option (google.api.http) = { - get: "/v1alpha2/signals:lookup" - }; - } - - // Returns a signal by name. - rpc GetSignal(GetSignalRequest) returns (Signal) { - option (google.api.http) = { - get: "/v1alpha2/{name=projects/*/signals/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Updates an existing signal (for example, to assign/unassign it to an - // incident). - rpc UpdateSignal(UpdateSignalRequest) returns (Signal) { - option (google.api.http) = { - patch: "/v1alpha2/{signal.name=projects/*/signals/*}" - body: "signal" - }; - option (google.api.method_signature) = "signal,update_mask"; - } - - // Escalates an incident. - rpc EscalateIncident(EscalateIncidentRequest) returns (EscalateIncidentResponse) { - option (google.api.http) = { - post: "/v1alpha2/{incident.name=projects/*/incidents/*}:escalate" - body: "*" - }; - } - - // Creates a new artifact. - rpc CreateArtifact(CreateArtifactRequest) returns (Artifact) { - option (google.api.http) = { - post: "/v1alpha2/{parent=projects/*/incidents/*}/artifacts" - body: "artifact" - }; - option (google.api.method_signature) = "parent,artifact"; - } - - // Returns a list of artifacts for an incident. - rpc ListArtifacts(ListArtifactsRequest) returns (ListArtifactsResponse) { - option (google.api.http) = { - get: "/v1alpha2/{parent=projects/*/incidents/*}/artifacts" - }; - option (google.api.method_signature) = "parent"; - } - - // Updates an existing artifact. - rpc UpdateArtifact(UpdateArtifactRequest) returns (Artifact) { - option (google.api.http) = { - patch: "/v1alpha2/{artifact.name=projects/*/incidents/*/artifacts/*}" - body: "artifact" - }; - option (google.api.method_signature) = "artifact,update_mask"; - } - - // Deletes an existing artifact. - rpc DeleteArtifact(DeleteArtifactRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1alpha2/{name=projects/*/incidents/*/artifacts/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Sends a summary of the shift for oncall handoff. - rpc SendShiftHandoff(SendShiftHandoffRequest) returns (SendShiftHandoffResponse) { - option (google.api.http) = { - post: "/v1alpha2/{parent=projects/*}/shiftHandoff:send" - body: "*" - }; - } - - // Creates a new subscription. - // This will fail if: - // a. there are too many (50) subscriptions in the incident already - // b. a subscription using the given channel already exists - rpc CreateSubscription(CreateSubscriptionRequest) returns (Subscription) { - option (google.api.http) = { - post: "/v1alpha2/{parent=projects/*/incidents/*}/subscriptions" - body: "subscription" - }; - option (google.api.method_signature) = "parent,subscription"; - } - - // Updates a subscription. - rpc UpdateSubscription(UpdateSubscriptionRequest) returns (Subscription) { - option (google.api.http) = { - patch: "/v1alpha2/{subscription.name=projects/*/incidents/*/subscriptions/*}" - body: "subscription" - }; - option (google.api.method_signature) = "subscription,update_mask"; - } - - // Returns a list of subscriptions for an incident. - rpc ListSubscriptions(ListSubscriptionsRequest) returns (ListSubscriptionsResponse) { - option (google.api.http) = { - get: "/v1alpha2/{parent=projects/*/incidents/*}/subscriptions" - }; - option (google.api.method_signature) = "parent"; - } - - // Deletes an existing subscription. - rpc DeleteSubscription(DeleteSubscriptionRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1alpha2/{name=projects/*/incidents/*/subscriptions/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Creates a role assignment on an existing incident. Normally, the user field - // will be set when assigning a role to oneself, and the next field will be - // set when proposing another user as the assignee. Setting the next field - // directly to a user other than oneself is equivalent to proposing and - // force-assigning the role to the user. - rpc CreateIncidentRoleAssignment(CreateIncidentRoleAssignmentRequest) returns (IncidentRoleAssignment) { - option (google.api.http) = { - post: "/v1alpha2/{parent=projects/*/incidents/*}/roleAssignments" - body: "*" - }; - option (google.api.method_signature) = "parent,incident_role_assignment"; - } - - // Deletes an existing role assignment. - rpc DeleteIncidentRoleAssignment(DeleteIncidentRoleAssignmentRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1alpha2/{name=projects/*/incidents/*/roleAssignments/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Lists role assignments that are part of an incident. - rpc ListIncidentRoleAssignments(ListIncidentRoleAssignmentsRequest) returns (ListIncidentRoleAssignmentsResponse) { - option (google.api.http) = { - get: "/v1alpha2/{parent=projects/*/incidents/*}/roleAssignments" - }; - option (google.api.method_signature) = "parent"; - } - - // Starts a role handover. The proposed assignee will receive an email - // notifying them of the assignment. This will fail if a role handover is - // already pending. - // Handover to an oncall ladder is not permitted. Use - // CreateIncidentRoleAssignment instead. - rpc RequestIncidentRoleHandover(RequestIncidentRoleHandoverRequest) returns (IncidentRoleAssignment) { - option (google.api.http) = { - post: "/v1alpha2/{name=projects/*/incidents/*/roleAssignments/*}:requestHandover" - body: "*" - }; - option (google.api.method_signature) = "name,new_assignee"; - } - - // Confirms a role handover. This will fail if the 'proposed_assignee' field - // of the IncidentRoleAssignment is not equal to the 'new_assignee' field of - // the request. If the caller is not the new_assignee, - // ForceIncidentRoleHandover should be used instead. - rpc ConfirmIncidentRoleHandover(ConfirmIncidentRoleHandoverRequest) returns (IncidentRoleAssignment) { - option (google.api.http) = { - post: "/v1alpha2/{name=projects/*/incidents/*/roleAssignments/*}:confirmHandover" - body: "*" - }; - option (google.api.method_signature) = "name,new_assignee"; - } - - // Forces a role handover. This will fail if the 'proposed_assignee' field of - // the IncidentRoleAssignment is not equal to the 'new_assignee' field of the - // request. If the caller is the new_assignee, ConfirmIncidentRoleHandover - // should be used instead. - rpc ForceIncidentRoleHandover(ForceIncidentRoleHandoverRequest) returns (IncidentRoleAssignment) { - option (google.api.http) = { - post: "/v1alpha2/{name=projects/*/incidents/*/roleAssignments/*}:forceHandover" - body: "*" - }; - option (google.api.method_signature) = "name,new_assignee"; - } - - // Cancels a role handover. This will fail if the 'proposed_assignee' field of - // the IncidentRoleAssignment is not equal to the 'new_assignee' field of the - // request. - rpc CancelIncidentRoleHandover(CancelIncidentRoleHandoverRequest) returns (IncidentRoleAssignment) { - option (google.api.http) = { - post: "/v1alpha2/{name=projects/*/incidents/*/roleAssignments/*}:cancelHandover" - body: "*" - }; - option (google.api.method_signature) = "name,new_assignee"; - } -} - -// Request for the CreateIncident method. -message CreateIncidentRequest { - // Required. The incident to create. - Incident incident = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The resource name of the hosting Stackdriver project which the incident - // belongs to. - // The name is of the form `projects/{project_id_or_number}` - // . - string parent = 2 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "cloudresourcemanager.googleapis.com/Project" - } - ]; -} - -// Request for the GetIncident method. -message GetIncidentRequest { - // Required. Resource name of the incident, for example, - // "projects/{project_id_or_number}/incidents/{incident_id}". - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "irm.googleapis.com/Incident" - } - ]; -} - -// Request for the UpdateIncident method. -message UpdateIncidentRequest { - // Required. The incident to update with the new values. - Incident incident = 1 [(google.api.field_behavior) = REQUIRED]; - - // List of fields that should be updated. - google.protobuf.FieldMask update_mask = 2; -} - -// Request for the SearchSimilarIncidents method. -message SearchSimilarIncidentsRequest { - // Required. Resource name of the incident or signal, for example, - // "projects/{project_id_or_number}/incidents/{incident_id}". - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "irm.googleapis.com/Incident" - } - ]; - - // Number of similar incidents to return. - int32 page_size = 2; - - // Page token from an earlier query, as returned in 'next_page_token'. - string page_token = 3; -} - -// Response for the SearchSimilarIncidents method. -message SearchSimilarIncidentsResponse { - // A single search result, i.e. an incident with (potentially) additional - // information. - message Result { - // An incident that is "similar" to the incident or signal specified in the - // request. - Incident incident = 1; - } - - // The search results, ordered by descending relevance. - repeated Result results = 1; - - // Page token to fetch the next set of similar incidents. - string next_page_token = 2; -} - -// Request for the CreateAnnotation method. -message CreateAnnotationRequest { - // Required. Resource name of the incident, for example, - // "projects/{project_id_or_number}/incidents/{incident_id}". - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "irm.googleapis.com/Incident" - } - ]; - - // Required. Only annotation.content is an input argument. - Annotation annotation = 2 [(google.api.field_behavior) = REQUIRED]; -} - - -// Request for the ListAnnotations method. -message ListAnnotationsRequest { - // Required. Resource name of the incident, for example, - // "projects/{project_id_or_number}/incidents/{incident_id}". - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "irm.googleapis.com/Incident" - } - ]; - - // Number of annotations to return. - int32 page_size = 2; - - // Page token from an earlier query, as returned in `next_page_token`. - string page_token = 3; -} - -// Response for the ListAnnotations method. -message ListAnnotationsResponse { - // List of annotations. - repeated Annotation annotations = 1; - - // Page token to fetch the next set of annotations. - string next_page_token = 2; -} - -// Request for the CreateTag method. -message CreateTagRequest { - // Required. Resource name of the incident, for example, - // "projects/{project_id_or_number}/incidents/{incident_id}". - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "irm.googleapis.com/Incident" - } - ]; - - // Required. Tag to create. Only tag.display_name is an input argument. - Tag tag = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Request for the DeleteTag method. -message DeleteTagRequest { - // Required. Resource name of the tag. - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "irm.googleapis.com/Tag" - } - ]; -} - -// Request for the ListTagsForIncident method. -message ListTagsRequest { - // Required. Resource name of the incident, for example, - // "projects/{project_id_or_number}/incidents/{incident_id}". - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "irm.googleapis.com/Incident" - } - ]; - - // Number of tags to return. - int32 page_size = 2; - - // Page token from an earlier query, as returned in `next_page_token`. - string page_token = 3; -} - -// Response for the ListTagsForIncident method. -message ListTagsResponse { - // Tags. - repeated Tag tags = 1; - - // Page token to fetch the next set of tags. - string next_page_token = 2; -} - -// Request for the CreateSignal method. -message CreateSignalRequest { - // Required. The resource name of the hosting Stackdriver project which requested - // signal belongs to. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "cloudresourcemanager.googleapis.com/Project" - } - ]; - - // Required. The signal to create. - Signal signal = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Request for the SearchSignals method. -message SearchSignalsRequest { - // Required. The resource name of the hosting Stackdriver project which requested - // incidents belong to. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "cloudresourcemanager.googleapis.com/Project" - } - ]; - - // An expression that defines which signals to return. - // - // Search atoms can be used to match certain specific fields. Otherwise, - // plain text will match text fields in the signal. - // - // Search atoms: - // - // * `start` - (timestamp) The time the signal was created. - // * `title` - The title of the signal. - // * `signal_state` - `open` or `closed`. State of the signal. - // (e.g., `signal_state:open`) - // - // Timestamp formats: - // - // * yyyy-MM-dd - an absolute date, treated as a calendar-day-wide window. - // In other words, the "<" operator will match dates before that date, the - // ">" operator will match dates after that date, and the ":" operator will - // match the entire day. - // * yyyy-MM-ddTHH:mm - Same as above, but with minute resolution. - // * yyyy-MM-ddTHH:mm:ss - Same as above, but with second resolution. - // * Nd (e.g. 7d) - a relative number of days ago, treated as a moment in time - // (as opposed to a day-wide span) a multiple of 24 hours ago (as opposed to - // calendar days). In the case of daylight savings time, it will apply the - // current timezone to both ends of the range. Note that exact matching - // (e.g. `start:7d`) is unlikely to be useful because that would only match - // signals created precisely at a particular instant in time. - // - // The absolute timestamp formats (everything starting with a year) can - // optionally be followed with a UTC offset in +/-hh:mm format. Also, the 'T' - // separating dates and times can optionally be replaced with a space. Note - // that any timestamp containing a space or colon will need to be quoted. - // - // Examples: - // - // * `foo` - matches signals containing the word "foo" - // * `"foo bar"` - matches signals containing the phrase "foo bar" - // * `foo bar` or `foo AND bar` - matches signals containing the words - // "foo" and "bar" - // * `foo -bar` or `foo AND NOT bar` - matches signals containing the - // word - // "foo" but not the word "bar" - // * `foo OR bar` - matches signals containing the word "foo" or the - // word "bar" - // * `start>2018-11-28` - matches signals which started after November - // 11, 2018. - // * `start<=2018-11-28` - matches signals which started on or before - // November 11, 2018. - // * `start:2018-11-28` - matches signals which started on November 11, - // 2018. - // * `start>"2018-11-28 01:02:03+04:00"` - matches signals which started - // after November 11, 2018 at 1:02:03 AM according to the UTC+04 time - // zone. - // * `start>7d` - matches signals which started after the point in time - // 7*24 hours ago - // * `start>180d` - similar to 7d, but likely to cross the daylight savings - // time boundary, so the end time will be 1 hour different from "now." - // * `foo AND start>90d AND stagemedium`, - // `severity<=minor`, etc.). - // - // Timestamp formats: - // * yyyy-MM-dd - an absolute date, treated as a calendar-day-wide window. - // In other words, the "<" operator will match dates before that date, the - // ">" operator will match dates after that date, and the ":" or "=" - // operators will match the entire day. - // * Nd (for example, 7d) - a relative number of days ago, treated as a moment - // in time (as opposed to a day-wide span). A multiple of 24 hours ago (as - // opposed to calendar days). In the case of daylight savings time, it will - // apply the current timezone to both ends of the range. Note that exact - // matching (for example, `start:7d`) is unlikely to be useful because that - // would only match incidents created precisely at a particular instant in - // time. - // - // Examples: - // - // * `foo` - matches incidents containing the word "foo" - // * `"foo bar"` - matches incidents containing the phrase "foo bar" - // * `foo bar` or `foo AND bar` - matches incidents containing the words "foo" - // and "bar" - // * `foo -bar` or `foo AND NOT bar` - matches incidents containing the word - // "foo" but not the word "bar" - // * `foo OR bar` - matches incidents containing the word "foo" or the word - // "bar" - // * `start>2018-11-28` - matches incidents which started after November 11, - // 2018. - // * `start<=2018-11-28` - matches incidents which started on or before - // November 11, 2018. - // * `start:2018-11-28` - matches incidents which started on November 11, - // 2018. - // * `start>7d` - matches incidents which started after the point in time 7*24 - // hours ago - // * `start>180d` - similar to 7d, but likely to cross the daylight savings - // time boundary, so the end time will be 1 hour different from "now." - // * `foo AND start>90d AND stage