You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1189 lines
46 KiB

  1. // Copyright 2019 Google LLC
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // https://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. // Code generated by gapic-generator. DO NOT EDIT.
  15. package irm
  16. import (
  17. "context"
  18. "math"
  19. "time"
  20. "github.com/golang/protobuf/proto"
  21. gax "github.com/googleapis/gax-go/v2"
  22. "google.golang.org/api/iterator"
  23. "google.golang.org/api/option"
  24. "google.golang.org/api/transport"
  25. irmpb "google.golang.org/genproto/googleapis/cloud/irm/v1alpha2"
  26. "google.golang.org/grpc"
  27. "google.golang.org/grpc/codes"
  28. "google.golang.org/grpc/metadata"
  29. )
  30. // IncidentCallOptions contains the retry settings for each method of IncidentClient.
  31. type IncidentCallOptions struct {
  32. CreateIncident []gax.CallOption
  33. GetIncident []gax.CallOption
  34. SearchIncidents []gax.CallOption
  35. UpdateIncident []gax.CallOption
  36. SearchSimilarIncidents []gax.CallOption
  37. CreateAnnotation []gax.CallOption
  38. ListAnnotations []gax.CallOption
  39. CreateTag []gax.CallOption
  40. DeleteTag []gax.CallOption
  41. ListTags []gax.CallOption
  42. CreateSignal []gax.CallOption
  43. SearchSignals []gax.CallOption
  44. GetSignal []gax.CallOption
  45. UpdateSignal []gax.CallOption
  46. EscalateIncident []gax.CallOption
  47. CreateArtifact []gax.CallOption
  48. ListArtifacts []gax.CallOption
  49. UpdateArtifact []gax.CallOption
  50. DeleteArtifact []gax.CallOption
  51. SendShiftHandoff []gax.CallOption
  52. CreateSubscription []gax.CallOption
  53. UpdateSubscription []gax.CallOption
  54. ListSubscriptions []gax.CallOption
  55. DeleteSubscription []gax.CallOption
  56. CreateIncidentRoleAssignment []gax.CallOption
  57. DeleteIncidentRoleAssignment []gax.CallOption
  58. ListIncidentRoleAssignments []gax.CallOption
  59. RequestIncidentRoleHandover []gax.CallOption
  60. ConfirmIncidentRoleHandover []gax.CallOption
  61. ForceIncidentRoleHandover []gax.CallOption
  62. CancelIncidentRoleHandover []gax.CallOption
  63. }
  64. func defaultIncidentClientOptions() []option.ClientOption {
  65. return []option.ClientOption{
  66. option.WithEndpoint("irm.googleapis.com:443"),
  67. option.WithScopes(DefaultAuthScopes()...),
  68. }
  69. }
  70. func defaultIncidentCallOptions() *IncidentCallOptions {
  71. retry := map[[2]string][]gax.CallOption{
  72. {"default", "idempotent"}: {
  73. gax.WithRetry(func() gax.Retryer {
  74. return gax.OnCodes([]codes.Code{
  75. codes.DeadlineExceeded,
  76. codes.Unavailable,
  77. }, gax.Backoff{
  78. Initial: 100 * time.Millisecond,
  79. Max: 60000 * time.Millisecond,
  80. Multiplier: 1.3,
  81. })
  82. }),
  83. },
  84. }
  85. return &IncidentCallOptions{
  86. CreateIncident: retry[[2]string{"default", "non_idempotent"}],
  87. GetIncident: retry[[2]string{"default", "idempotent"}],
  88. SearchIncidents: retry[[2]string{"default", "idempotent"}],
  89. UpdateIncident: retry[[2]string{"default", "non_idempotent"}],
  90. SearchSimilarIncidents: retry[[2]string{"default", "idempotent"}],
  91. CreateAnnotation: retry[[2]string{"default", "non_idempotent"}],
  92. ListAnnotations: retry[[2]string{"default", "idempotent"}],
  93. CreateTag: retry[[2]string{"default", "non_idempotent"}],
  94. DeleteTag: retry[[2]string{"default", "idempotent"}],
  95. ListTags: retry[[2]string{"default", "idempotent"}],
  96. CreateSignal: retry[[2]string{"default", "non_idempotent"}],
  97. SearchSignals: retry[[2]string{"default", "idempotent"}],
  98. GetSignal: retry[[2]string{"default", "idempotent"}],
  99. UpdateSignal: retry[[2]string{"default", "non_idempotent"}],
  100. EscalateIncident: retry[[2]string{"default", "non_idempotent"}],
  101. CreateArtifact: retry[[2]string{"default", "non_idempotent"}],
  102. ListArtifacts: retry[[2]string{"default", "idempotent"}],
  103. UpdateArtifact: retry[[2]string{"default", "non_idempotent"}],
  104. DeleteArtifact: retry[[2]string{"default", "idempotent"}],
  105. SendShiftHandoff: retry[[2]string{"default", "non_idempotent"}],
  106. CreateSubscription: retry[[2]string{"default", "non_idempotent"}],
  107. UpdateSubscription: retry[[2]string{"default", "non_idempotent"}],
  108. ListSubscriptions: retry[[2]string{"default", "idempotent"}],
  109. DeleteSubscription: retry[[2]string{"default", "idempotent"}],
  110. CreateIncidentRoleAssignment: retry[[2]string{"default", "non_idempotent"}],
  111. DeleteIncidentRoleAssignment: retry[[2]string{"default", "idempotent"}],
  112. ListIncidentRoleAssignments: retry[[2]string{"default", "idempotent"}],
  113. RequestIncidentRoleHandover: retry[[2]string{"default", "non_idempotent"}],
  114. ConfirmIncidentRoleHandover: retry[[2]string{"default", "non_idempotent"}],
  115. ForceIncidentRoleHandover: retry[[2]string{"default", "non_idempotent"}],
  116. CancelIncidentRoleHandover: retry[[2]string{"default", "non_idempotent"}],
  117. }
  118. }
  119. // IncidentClient is a client for interacting with Stackdriver Incident Response & Management API.
  120. //
  121. // Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
  122. type IncidentClient struct {
  123. // The connection to the service.
  124. conn *grpc.ClientConn
  125. // The gRPC API client.
  126. incidentClient irmpb.IncidentServiceClient
  127. // The call options for this service.
  128. CallOptions *IncidentCallOptions
  129. // The x-goog-* metadata to be sent with each request.
  130. xGoogMetadata metadata.MD
  131. }
  132. // NewIncidentClient creates a new incident service client.
  133. //
  134. // The Incident API for Incident Response & Management.
  135. func NewIncidentClient(ctx context.Context, opts ...option.ClientOption) (*IncidentClient, error) {
  136. conn, err := transport.DialGRPC(ctx, append(defaultIncidentClientOptions(), opts...)...)
  137. if err != nil {
  138. return nil, err
  139. }
  140. c := &IncidentClient{
  141. conn: conn,
  142. CallOptions: defaultIncidentCallOptions(),
  143. incidentClient: irmpb.NewIncidentServiceClient(conn),
  144. }
  145. c.setGoogleClientInfo()
  146. return c, nil
  147. }
  148. // Connection returns the client's connection to the API service.
  149. func (c *IncidentClient) Connection() *grpc.ClientConn {
  150. return c.conn
  151. }
  152. // Close closes the connection to the API service. The user should invoke this when
  153. // the client is no longer required.
  154. func (c *IncidentClient) Close() error {
  155. return c.conn.Close()
  156. }
  157. // setGoogleClientInfo sets the name and version of the application in
  158. // the `x-goog-api-client` header passed on each request. Intended for
  159. // use by Google-written clients.
  160. func (c *IncidentClient) setGoogleClientInfo(keyval ...string) {
  161. kv := append([]string{"gl-go", versionGo()}, keyval...)
  162. kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version)
  163. c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
  164. }
  165. // CreateIncident creates a new incident.
  166. func (c *IncidentClient) CreateIncident(ctx context.Context, req *irmpb.CreateIncidentRequest, opts ...gax.CallOption) (*irmpb.Incident, error) {
  167. ctx = insertMetadata(ctx, c.xGoogMetadata)
  168. opts = append(c.CallOptions.CreateIncident[0:len(c.CallOptions.CreateIncident):len(c.CallOptions.CreateIncident)], opts...)
  169. var resp *irmpb.Incident
  170. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  171. var err error
  172. resp, err = c.incidentClient.CreateIncident(ctx, req, settings.GRPC...)
  173. return err
  174. }, opts...)
  175. if err != nil {
  176. return nil, err
  177. }
  178. return resp, nil
  179. }
  180. // GetIncident returns an incident by name.
  181. func (c *IncidentClient) GetIncident(ctx context.Context, req *irmpb.GetIncidentRequest, opts ...gax.CallOption) (*irmpb.Incident, error) {
  182. ctx = insertMetadata(ctx, c.xGoogMetadata)
  183. opts = append(c.CallOptions.GetIncident[0:len(c.CallOptions.GetIncident):len(c.CallOptions.GetIncident)], opts...)
  184. var resp *irmpb.Incident
  185. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  186. var err error
  187. resp, err = c.incidentClient.GetIncident(ctx, req, settings.GRPC...)
  188. return err
  189. }, opts...)
  190. if err != nil {
  191. return nil, err
  192. }
  193. return resp, nil
  194. }
  195. // SearchIncidents returns a list of incidents.
  196. // Incidents are ordered by start time, with the most recent incidents first.
  197. func (c *IncidentClient) SearchIncidents(ctx context.Context, req *irmpb.SearchIncidentsRequest, opts ...gax.CallOption) *IncidentIterator {
  198. ctx = insertMetadata(ctx, c.xGoogMetadata)
  199. opts = append(c.CallOptions.SearchIncidents[0:len(c.CallOptions.SearchIncidents):len(c.CallOptions.SearchIncidents)], opts...)
  200. it := &IncidentIterator{}
  201. req = proto.Clone(req).(*irmpb.SearchIncidentsRequest)
  202. it.InternalFetch = func(pageSize int, pageToken string) ([]*irmpb.Incident, string, error) {
  203. var resp *irmpb.SearchIncidentsResponse
  204. req.PageToken = pageToken
  205. if pageSize > math.MaxInt32 {
  206. req.PageSize = math.MaxInt32
  207. } else {
  208. req.PageSize = int32(pageSize)
  209. }
  210. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  211. var err error
  212. resp, err = c.incidentClient.SearchIncidents(ctx, req, settings.GRPC...)
  213. return err
  214. }, opts...)
  215. if err != nil {
  216. return nil, "", err
  217. }
  218. return resp.Incidents, resp.NextPageToken, nil
  219. }
  220. fetch := func(pageSize int, pageToken string) (string, error) {
  221. items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
  222. if err != nil {
  223. return "", err
  224. }
  225. it.items = append(it.items, items...)
  226. return nextPageToken, nil
  227. }
  228. it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
  229. it.pageInfo.MaxSize = int(req.PageSize)
  230. return it
  231. }
  232. // UpdateIncident updates an existing incident.
  233. func (c *IncidentClient) UpdateIncident(ctx context.Context, req *irmpb.UpdateIncidentRequest, opts ...gax.CallOption) (*irmpb.Incident, error) {
  234. ctx = insertMetadata(ctx, c.xGoogMetadata)
  235. opts = append(c.CallOptions.UpdateIncident[0:len(c.CallOptions.UpdateIncident):len(c.CallOptions.UpdateIncident)], opts...)
  236. var resp *irmpb.Incident
  237. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  238. var err error
  239. resp, err = c.incidentClient.UpdateIncident(ctx, req, settings.GRPC...)
  240. return err
  241. }, opts...)
  242. if err != nil {
  243. return nil, err
  244. }
  245. return resp, nil
  246. }
  247. // SearchSimilarIncidents returns a list of incidents that are "similar" to the specified incident
  248. // or signal. This functionality is provided on a best-effort basis and the
  249. // definition of "similar" is subject to change.
  250. func (c *IncidentClient) SearchSimilarIncidents(ctx context.Context, req *irmpb.SearchSimilarIncidentsRequest, opts ...gax.CallOption) *SearchSimilarIncidentsResponse_ResultIterator {
  251. ctx = insertMetadata(ctx, c.xGoogMetadata)
  252. opts = append(c.CallOptions.SearchSimilarIncidents[0:len(c.CallOptions.SearchSimilarIncidents):len(c.CallOptions.SearchSimilarIncidents)], opts...)
  253. it := &SearchSimilarIncidentsResponse_ResultIterator{}
  254. req = proto.Clone(req).(*irmpb.SearchSimilarIncidentsRequest)
  255. it.InternalFetch = func(pageSize int, pageToken string) ([]*irmpb.SearchSimilarIncidentsResponse_Result, string, error) {
  256. var resp *irmpb.SearchSimilarIncidentsResponse
  257. req.PageToken = pageToken
  258. if pageSize > math.MaxInt32 {
  259. req.PageSize = math.MaxInt32
  260. } else {
  261. req.PageSize = int32(pageSize)
  262. }
  263. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  264. var err error
  265. resp, err = c.incidentClient.SearchSimilarIncidents(ctx, req, settings.GRPC...)
  266. return err
  267. }, opts...)
  268. if err != nil {
  269. return nil, "", err
  270. }
  271. return resp.Results, resp.NextPageToken, nil
  272. }
  273. fetch := func(pageSize int, pageToken string) (string, error) {
  274. items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
  275. if err != nil {
  276. return "", err
  277. }
  278. it.items = append(it.items, items...)
  279. return nextPageToken, nil
  280. }
  281. it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
  282. it.pageInfo.MaxSize = int(req.PageSize)
  283. return it
  284. }
  285. // CreateAnnotation creates an annotation on an existing incident. Only 'text/plain' and
  286. // 'text/markdown' annotations can be created via this method.
  287. func (c *IncidentClient) CreateAnnotation(ctx context.Context, req *irmpb.CreateAnnotationRequest, opts ...gax.CallOption) (*irmpb.Annotation, error) {
  288. ctx = insertMetadata(ctx, c.xGoogMetadata)
  289. opts = append(c.CallOptions.CreateAnnotation[0:len(c.CallOptions.CreateAnnotation):len(c.CallOptions.CreateAnnotation)], opts...)
  290. var resp *irmpb.Annotation
  291. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  292. var err error
  293. resp, err = c.incidentClient.CreateAnnotation(ctx, req, settings.GRPC...)
  294. return err
  295. }, opts...)
  296. if err != nil {
  297. return nil, err
  298. }
  299. return resp, nil
  300. }
  301. // ListAnnotations lists annotations that are part of an incident. No assumptions should be
  302. // made on the content-type of the annotation returned.
  303. func (c *IncidentClient) ListAnnotations(ctx context.Context, req *irmpb.ListAnnotationsRequest, opts ...gax.CallOption) *AnnotationIterator {
  304. ctx = insertMetadata(ctx, c.xGoogMetadata)
  305. opts = append(c.CallOptions.ListAnnotations[0:len(c.CallOptions.ListAnnotations):len(c.CallOptions.ListAnnotations)], opts...)
  306. it := &AnnotationIterator{}
  307. req = proto.Clone(req).(*irmpb.ListAnnotationsRequest)
  308. it.InternalFetch = func(pageSize int, pageToken string) ([]*irmpb.Annotation, string, error) {
  309. var resp *irmpb.ListAnnotationsResponse
  310. req.PageToken = pageToken
  311. if pageSize > math.MaxInt32 {
  312. req.PageSize = math.MaxInt32
  313. } else {
  314. req.PageSize = int32(pageSize)
  315. }
  316. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  317. var err error
  318. resp, err = c.incidentClient.ListAnnotations(ctx, req, settings.GRPC...)
  319. return err
  320. }, opts...)
  321. if err != nil {
  322. return nil, "", err
  323. }
  324. return resp.Annotations, resp.NextPageToken, nil
  325. }
  326. fetch := func(pageSize int, pageToken string) (string, error) {
  327. items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
  328. if err != nil {
  329. return "", err
  330. }
  331. it.items = append(it.items, items...)
  332. return nextPageToken, nil
  333. }
  334. it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
  335. it.pageInfo.MaxSize = int(req.PageSize)
  336. return it
  337. }
  338. // CreateTag creates a tag on an existing incident.
  339. func (c *IncidentClient) CreateTag(ctx context.Context, req *irmpb.CreateTagRequest, opts ...gax.CallOption) (*irmpb.Tag, error) {
  340. ctx = insertMetadata(ctx, c.xGoogMetadata)
  341. opts = append(c.CallOptions.CreateTag[0:len(c.CallOptions.CreateTag):len(c.CallOptions.CreateTag)], opts...)
  342. var resp *irmpb.Tag
  343. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  344. var err error
  345. resp, err = c.incidentClient.CreateTag(ctx, req, settings.GRPC...)
  346. return err
  347. }, opts...)
  348. if err != nil {
  349. return nil, err
  350. }
  351. return resp, nil
  352. }
  353. // DeleteTag deletes an existing tag.
  354. func (c *IncidentClient) DeleteTag(ctx context.Context, req *irmpb.DeleteTagRequest, opts ...gax.CallOption) error {
  355. ctx = insertMetadata(ctx, c.xGoogMetadata)
  356. opts = append(c.CallOptions.DeleteTag[0:len(c.CallOptions.DeleteTag):len(c.CallOptions.DeleteTag)], opts...)
  357. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  358. var err error
  359. _, err = c.incidentClient.DeleteTag(ctx, req, settings.GRPC...)
  360. return err
  361. }, opts...)
  362. return err
  363. }
  364. // ListTags lists tags that are part of an incident.
  365. func (c *IncidentClient) ListTags(ctx context.Context, req *irmpb.ListTagsRequest, opts ...gax.CallOption) *TagIterator {
  366. ctx = insertMetadata(ctx, c.xGoogMetadata)
  367. opts = append(c.CallOptions.ListTags[0:len(c.CallOptions.ListTags):len(c.CallOptions.ListTags)], opts...)
  368. it := &TagIterator{}
  369. req = proto.Clone(req).(*irmpb.ListTagsRequest)
  370. it.InternalFetch = func(pageSize int, pageToken string) ([]*irmpb.Tag, string, error) {
  371. var resp *irmpb.ListTagsResponse
  372. req.PageToken = pageToken
  373. if pageSize > math.MaxInt32 {
  374. req.PageSize = math.MaxInt32
  375. } else {
  376. req.PageSize = int32(pageSize)
  377. }
  378. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  379. var err error
  380. resp, err = c.incidentClient.ListTags(ctx, req, settings.GRPC...)
  381. return err
  382. }, opts...)
  383. if err != nil {
  384. return nil, "", err
  385. }
  386. return resp.Tags, resp.NextPageToken, nil
  387. }
  388. fetch := func(pageSize int, pageToken string) (string, error) {
  389. items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
  390. if err != nil {
  391. return "", err
  392. }
  393. it.items = append(it.items, items...)
  394. return nextPageToken, nil
  395. }
  396. it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
  397. it.pageInfo.MaxSize = int(req.PageSize)
  398. return it
  399. }
  400. // CreateSignal creates a new signal.
  401. func (c *IncidentClient) CreateSignal(ctx context.Context, req *irmpb.CreateSignalRequest, opts ...gax.CallOption) (*irmpb.Signal, error) {
  402. ctx = insertMetadata(ctx, c.xGoogMetadata)
  403. opts = append(c.CallOptions.CreateSignal[0:len(c.CallOptions.CreateSignal):len(c.CallOptions.CreateSignal)], opts...)
  404. var resp *irmpb.Signal
  405. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  406. var err error
  407. resp, err = c.incidentClient.CreateSignal(ctx, req, settings.GRPC...)
  408. return err
  409. }, opts...)
  410. if err != nil {
  411. return nil, err
  412. }
  413. return resp, nil
  414. }
  415. // SearchSignals lists signals that are part of an incident.
  416. // Signals are returned in reverse chronological order.
  417. func (c *IncidentClient) SearchSignals(ctx context.Context, req *irmpb.SearchSignalsRequest, opts ...gax.CallOption) *SignalIterator {
  418. ctx = insertMetadata(ctx, c.xGoogMetadata)
  419. opts = append(c.CallOptions.SearchSignals[0:len(c.CallOptions.SearchSignals):len(c.CallOptions.SearchSignals)], opts...)
  420. it := &SignalIterator{}
  421. req = proto.Clone(req).(*irmpb.SearchSignalsRequest)
  422. it.InternalFetch = func(pageSize int, pageToken string) ([]*irmpb.Signal, string, error) {
  423. var resp *irmpb.SearchSignalsResponse
  424. req.PageToken = pageToken
  425. if pageSize > math.MaxInt32 {
  426. req.PageSize = math.MaxInt32
  427. } else {
  428. req.PageSize = int32(pageSize)
  429. }
  430. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  431. var err error
  432. resp, err = c.incidentClient.SearchSignals(ctx, req, settings.GRPC...)
  433. return err
  434. }, opts...)
  435. if err != nil {
  436. return nil, "", err
  437. }
  438. return resp.Signals, resp.NextPageToken, nil
  439. }
  440. fetch := func(pageSize int, pageToken string) (string, error) {
  441. items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
  442. if err != nil {
  443. return "", err
  444. }
  445. it.items = append(it.items, items...)
  446. return nextPageToken, nil
  447. }
  448. it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
  449. it.pageInfo.MaxSize = int(req.PageSize)
  450. return it
  451. }
  452. // GetSignal returns a signal by name.
  453. func (c *IncidentClient) GetSignal(ctx context.Context, req *irmpb.GetSignalRequest, opts ...gax.CallOption) (*irmpb.Signal, error) {
  454. ctx = insertMetadata(ctx, c.xGoogMetadata)
  455. opts = append(c.CallOptions.GetSignal[0:len(c.CallOptions.GetSignal):len(c.CallOptions.GetSignal)], opts...)
  456. var resp *irmpb.Signal
  457. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  458. var err error
  459. resp, err = c.incidentClient.GetSignal(ctx, req, settings.GRPC...)
  460. return err
  461. }, opts...)
  462. if err != nil {
  463. return nil, err
  464. }
  465. return resp, nil
  466. }
  467. // UpdateSignal updates an existing signal (for example, to assign/unassign it to an
  468. // incident).
  469. func (c *IncidentClient) UpdateSignal(ctx context.Context, req *irmpb.UpdateSignalRequest, opts ...gax.CallOption) (*irmpb.Signal, error) {
  470. ctx = insertMetadata(ctx, c.xGoogMetadata)
  471. opts = append(c.CallOptions.UpdateSignal[0:len(c.CallOptions.UpdateSignal):len(c.CallOptions.UpdateSignal)], opts...)
  472. var resp *irmpb.Signal
  473. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  474. var err error
  475. resp, err = c.incidentClient.UpdateSignal(ctx, req, settings.GRPC...)
  476. return err
  477. }, opts...)
  478. if err != nil {
  479. return nil, err
  480. }
  481. return resp, nil
  482. }
  483. // EscalateIncident escalates an incident.
  484. func (c *IncidentClient) EscalateIncident(ctx context.Context, req *irmpb.EscalateIncidentRequest, opts ...gax.CallOption) (*irmpb.EscalateIncidentResponse, error) {
  485. ctx = insertMetadata(ctx, c.xGoogMetadata)
  486. opts = append(c.CallOptions.EscalateIncident[0:len(c.CallOptions.EscalateIncident):len(c.CallOptions.EscalateIncident)], opts...)
  487. var resp *irmpb.EscalateIncidentResponse
  488. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  489. var err error
  490. resp, err = c.incidentClient.EscalateIncident(ctx, req, settings.GRPC...)
  491. return err
  492. }, opts...)
  493. if err != nil {
  494. return nil, err
  495. }
  496. return resp, nil
  497. }
  498. // CreateArtifact creates a new artifact.
  499. func (c *IncidentClient) CreateArtifact(ctx context.Context, req *irmpb.CreateArtifactRequest, opts ...gax.CallOption) (*irmpb.Artifact, error) {
  500. ctx = insertMetadata(ctx, c.xGoogMetadata)
  501. opts = append(c.CallOptions.CreateArtifact[0:len(c.CallOptions.CreateArtifact):len(c.CallOptions.CreateArtifact)], opts...)
  502. var resp *irmpb.Artifact
  503. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  504. var err error
  505. resp, err = c.incidentClient.CreateArtifact(ctx, req, settings.GRPC...)
  506. return err
  507. }, opts...)
  508. if err != nil {
  509. return nil, err
  510. }
  511. return resp, nil
  512. }
  513. // ListArtifacts returns a list of artifacts for an incident.
  514. func (c *IncidentClient) ListArtifacts(ctx context.Context, req *irmpb.ListArtifactsRequest, opts ...gax.CallOption) *ArtifactIterator {
  515. ctx = insertMetadata(ctx, c.xGoogMetadata)
  516. opts = append(c.CallOptions.ListArtifacts[0:len(c.CallOptions.ListArtifacts):len(c.CallOptions.ListArtifacts)], opts...)
  517. it := &ArtifactIterator{}
  518. req = proto.Clone(req).(*irmpb.ListArtifactsRequest)
  519. it.InternalFetch = func(pageSize int, pageToken string) ([]*irmpb.Artifact, string, error) {
  520. var resp *irmpb.ListArtifactsResponse
  521. req.PageToken = pageToken
  522. if pageSize > math.MaxInt32 {
  523. req.PageSize = math.MaxInt32
  524. } else {
  525. req.PageSize = int32(pageSize)
  526. }
  527. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  528. var err error
  529. resp, err = c.incidentClient.ListArtifacts(ctx, req, settings.GRPC...)
  530. return err
  531. }, opts...)
  532. if err != nil {
  533. return nil, "", err
  534. }
  535. return resp.Artifacts, resp.NextPageToken, nil
  536. }
  537. fetch := func(pageSize int, pageToken string) (string, error) {
  538. items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
  539. if err != nil {
  540. return "", err
  541. }
  542. it.items = append(it.items, items...)
  543. return nextPageToken, nil
  544. }
  545. it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
  546. it.pageInfo.MaxSize = int(req.PageSize)
  547. return it
  548. }
  549. // UpdateArtifact updates an existing artifact.
  550. func (c *IncidentClient) UpdateArtifact(ctx context.Context, req *irmpb.UpdateArtifactRequest, opts ...gax.CallOption) (*irmpb.Artifact, error) {
  551. ctx = insertMetadata(ctx, c.xGoogMetadata)
  552. opts = append(c.CallOptions.UpdateArtifact[0:len(c.CallOptions.UpdateArtifact):len(c.CallOptions.UpdateArtifact)], opts...)
  553. var resp *irmpb.Artifact
  554. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  555. var err error
  556. resp, err = c.incidentClient.UpdateArtifact(ctx, req, settings.GRPC...)
  557. return err
  558. }, opts...)
  559. if err != nil {
  560. return nil, err
  561. }
  562. return resp, nil
  563. }
  564. // DeleteArtifact deletes an existing artifact.
  565. func (c *IncidentClient) DeleteArtifact(ctx context.Context, req *irmpb.DeleteArtifactRequest, opts ...gax.CallOption) error {
  566. ctx = insertMetadata(ctx, c.xGoogMetadata)
  567. opts = append(c.CallOptions.DeleteArtifact[0:len(c.CallOptions.DeleteArtifact):len(c.CallOptions.DeleteArtifact)], opts...)
  568. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  569. var err error
  570. _, err = c.incidentClient.DeleteArtifact(ctx, req, settings.GRPC...)
  571. return err
  572. }, opts...)
  573. return err
  574. }
  575. // SendShiftHandoff sends a summary of the shift for oncall handoff.
  576. func (c *IncidentClient) SendShiftHandoff(ctx context.Context, req *irmpb.SendShiftHandoffRequest, opts ...gax.CallOption) (*irmpb.SendShiftHandoffResponse, error) {
  577. ctx = insertMetadata(ctx, c.xGoogMetadata)
  578. opts = append(c.CallOptions.SendShiftHandoff[0:len(c.CallOptions.SendShiftHandoff):len(c.CallOptions.SendShiftHandoff)], opts...)
  579. var resp *irmpb.SendShiftHandoffResponse
  580. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  581. var err error
  582. resp, err = c.incidentClient.SendShiftHandoff(ctx, req, settings.GRPC...)
  583. return err
  584. }, opts...)
  585. if err != nil {
  586. return nil, err
  587. }
  588. return resp, nil
  589. }
  590. // CreateSubscription creates a new subscription.
  591. // This will fail if:
  592. // a. there are too many (50) subscriptions in the incident already
  593. // b. a subscription using the given channel already exists
  594. func (c *IncidentClient) CreateSubscription(ctx context.Context, req *irmpb.CreateSubscriptionRequest, opts ...gax.CallOption) (*irmpb.Subscription, error) {
  595. ctx = insertMetadata(ctx, c.xGoogMetadata)
  596. opts = append(c.CallOptions.CreateSubscription[0:len(c.CallOptions.CreateSubscription):len(c.CallOptions.CreateSubscription)], opts...)
  597. var resp *irmpb.Subscription
  598. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  599. var err error
  600. resp, err = c.incidentClient.CreateSubscription(ctx, req, settings.GRPC...)
  601. return err
  602. }, opts...)
  603. if err != nil {
  604. return nil, err
  605. }
  606. return resp, nil
  607. }
  608. // UpdateSubscription updates a subscription.
  609. func (c *IncidentClient) UpdateSubscription(ctx context.Context, req *irmpb.UpdateSubscriptionRequest, opts ...gax.CallOption) (*irmpb.Subscription, error) {
  610. ctx = insertMetadata(ctx, c.xGoogMetadata)
  611. opts = append(c.CallOptions.UpdateSubscription[0:len(c.CallOptions.UpdateSubscription):len(c.CallOptions.UpdateSubscription)], opts...)
  612. var resp *irmpb.Subscription
  613. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  614. var err error
  615. resp, err = c.incidentClient.UpdateSubscription(ctx, req, settings.GRPC...)
  616. return err
  617. }, opts...)
  618. if err != nil {
  619. return nil, err
  620. }
  621. return resp, nil
  622. }
  623. // ListSubscriptions returns a list of subscriptions for an incident.
  624. func (c *IncidentClient) ListSubscriptions(ctx context.Context, req *irmpb.ListSubscriptionsRequest, opts ...gax.CallOption) *SubscriptionIterator {
  625. ctx = insertMetadata(ctx, c.xGoogMetadata)
  626. opts = append(c.CallOptions.ListSubscriptions[0:len(c.CallOptions.ListSubscriptions):len(c.CallOptions.ListSubscriptions)], opts...)
  627. it := &SubscriptionIterator{}
  628. req = proto.Clone(req).(*irmpb.ListSubscriptionsRequest)
  629. it.InternalFetch = func(pageSize int, pageToken string) ([]*irmpb.Subscription, string, error) {
  630. var resp *irmpb.ListSubscriptionsResponse
  631. req.PageToken = pageToken
  632. if pageSize > math.MaxInt32 {
  633. req.PageSize = math.MaxInt32
  634. } else {
  635. req.PageSize = int32(pageSize)
  636. }
  637. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  638. var err error
  639. resp, err = c.incidentClient.ListSubscriptions(ctx, req, settings.GRPC...)
  640. return err
  641. }, opts...)
  642. if err != nil {
  643. return nil, "", err
  644. }
  645. return resp.Subscriptions, resp.NextPageToken, nil
  646. }
  647. fetch := func(pageSize int, pageToken string) (string, error) {
  648. items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
  649. if err != nil {
  650. return "", err
  651. }
  652. it.items = append(it.items, items...)
  653. return nextPageToken, nil
  654. }
  655. it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
  656. it.pageInfo.MaxSize = int(req.PageSize)
  657. return it
  658. }
  659. // DeleteSubscription deletes an existing subscription.
  660. func (c *IncidentClient) DeleteSubscription(ctx context.Context, req *irmpb.DeleteSubscriptionRequest, opts ...gax.CallOption) error {
  661. ctx = insertMetadata(ctx, c.xGoogMetadata)
  662. opts = append(c.CallOptions.DeleteSubscription[0:len(c.CallOptions.DeleteSubscription):len(c.CallOptions.DeleteSubscription)], opts...)
  663. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  664. var err error
  665. _, err = c.incidentClient.DeleteSubscription(ctx, req, settings.GRPC...)
  666. return err
  667. }, opts...)
  668. return err
  669. }
  670. // CreateIncidentRoleAssignment creates a role assignment on an existing incident. Normally, the user field
  671. // will be set when assigning a role to oneself, and the next field will be
  672. // set when proposing another user as the assignee. Setting the next field
  673. // directly to a user other than oneself is equivalent to proposing and
  674. // force-assigning the role to the user.
  675. func (c *IncidentClient) CreateIncidentRoleAssignment(ctx context.Context, req *irmpb.CreateIncidentRoleAssignmentRequest, opts ...gax.CallOption) (*irmpb.IncidentRoleAssignment, error) {
  676. ctx = insertMetadata(ctx, c.xGoogMetadata)
  677. opts = append(c.CallOptions.CreateIncidentRoleAssignment[0:len(c.CallOptions.CreateIncidentRoleAssignment):len(c.CallOptions.CreateIncidentRoleAssignment)], opts...)
  678. var resp *irmpb.IncidentRoleAssignment
  679. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  680. var err error
  681. resp, err = c.incidentClient.CreateIncidentRoleAssignment(ctx, req, settings.GRPC...)
  682. return err
  683. }, opts...)
  684. if err != nil {
  685. return nil, err
  686. }
  687. return resp, nil
  688. }
  689. // DeleteIncidentRoleAssignment deletes an existing role assignment.
  690. func (c *IncidentClient) DeleteIncidentRoleAssignment(ctx context.Context, req *irmpb.DeleteIncidentRoleAssignmentRequest, opts ...gax.CallOption) error {
  691. ctx = insertMetadata(ctx, c.xGoogMetadata)
  692. opts = append(c.CallOptions.DeleteIncidentRoleAssignment[0:len(c.CallOptions.DeleteIncidentRoleAssignment):len(c.CallOptions.DeleteIncidentRoleAssignment)], opts...)
  693. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  694. var err error
  695. _, err = c.incidentClient.DeleteIncidentRoleAssignment(ctx, req, settings.GRPC...)
  696. return err
  697. }, opts...)
  698. return err
  699. }
  700. // ListIncidentRoleAssignments lists role assignments that are part of an incident.
  701. func (c *IncidentClient) ListIncidentRoleAssignments(ctx context.Context, req *irmpb.ListIncidentRoleAssignmentsRequest, opts ...gax.CallOption) *IncidentRoleAssignmentIterator {
  702. ctx = insertMetadata(ctx, c.xGoogMetadata)
  703. opts = append(c.CallOptions.ListIncidentRoleAssignments[0:len(c.CallOptions.ListIncidentRoleAssignments):len(c.CallOptions.ListIncidentRoleAssignments)], opts...)
  704. it := &IncidentRoleAssignmentIterator{}
  705. req = proto.Clone(req).(*irmpb.ListIncidentRoleAssignmentsRequest)
  706. it.InternalFetch = func(pageSize int, pageToken string) ([]*irmpb.IncidentRoleAssignment, string, error) {
  707. var resp *irmpb.ListIncidentRoleAssignmentsResponse
  708. req.PageToken = pageToken
  709. if pageSize > math.MaxInt32 {
  710. req.PageSize = math.MaxInt32
  711. } else {
  712. req.PageSize = int32(pageSize)
  713. }
  714. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  715. var err error
  716. resp, err = c.incidentClient.ListIncidentRoleAssignments(ctx, req, settings.GRPC...)
  717. return err
  718. }, opts...)
  719. if err != nil {
  720. return nil, "", err
  721. }
  722. return resp.IncidentRoleAssignments, resp.NextPageToken, nil
  723. }
  724. fetch := func(pageSize int, pageToken string) (string, error) {
  725. items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
  726. if err != nil {
  727. return "", err
  728. }
  729. it.items = append(it.items, items...)
  730. return nextPageToken, nil
  731. }
  732. it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
  733. it.pageInfo.MaxSize = int(req.PageSize)
  734. return it
  735. }
  736. // RequestIncidentRoleHandover starts a role handover. The proposed assignee will receive an email
  737. // notifying them of the assignment. This will fail if a role handover is
  738. // already pending.
  739. func (c *IncidentClient) RequestIncidentRoleHandover(ctx context.Context, req *irmpb.RequestIncidentRoleHandoverRequest, opts ...gax.CallOption) (*irmpb.IncidentRoleAssignment, error) {
  740. ctx = insertMetadata(ctx, c.xGoogMetadata)
  741. opts = append(c.CallOptions.RequestIncidentRoleHandover[0:len(c.CallOptions.RequestIncidentRoleHandover):len(c.CallOptions.RequestIncidentRoleHandover)], opts...)
  742. var resp *irmpb.IncidentRoleAssignment
  743. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  744. var err error
  745. resp, err = c.incidentClient.RequestIncidentRoleHandover(ctx, req, settings.GRPC...)
  746. return err
  747. }, opts...)
  748. if err != nil {
  749. return nil, err
  750. }
  751. return resp, nil
  752. }
  753. // ConfirmIncidentRoleHandover confirms a role handover. This will fail if the 'proposed_assignee' field
  754. // of the IncidentRoleAssignment is not equal to the 'new_assignee' field of
  755. // the request. If the caller is not the new_assignee,
  756. // ForceIncidentRoleHandover should be used instead.
  757. func (c *IncidentClient) ConfirmIncidentRoleHandover(ctx context.Context, req *irmpb.ConfirmIncidentRoleHandoverRequest, opts ...gax.CallOption) (*irmpb.IncidentRoleAssignment, error) {
  758. ctx = insertMetadata(ctx, c.xGoogMetadata)
  759. opts = append(c.CallOptions.ConfirmIncidentRoleHandover[0:len(c.CallOptions.ConfirmIncidentRoleHandover):len(c.CallOptions.ConfirmIncidentRoleHandover)], opts...)
  760. var resp *irmpb.IncidentRoleAssignment
  761. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  762. var err error
  763. resp, err = c.incidentClient.ConfirmIncidentRoleHandover(ctx, req, settings.GRPC...)
  764. return err
  765. }, opts...)
  766. if err != nil {
  767. return nil, err
  768. }
  769. return resp, nil
  770. }
  771. // ForceIncidentRoleHandover forces a role handover. This will fail if the 'proposed_assignee' field of
  772. // the IncidentRoleAssignment is not equal to the 'new_assignee' field of the
  773. // request. If the caller is the new_assignee, ConfirmIncidentRoleHandover
  774. // should be used instead.
  775. func (c *IncidentClient) ForceIncidentRoleHandover(ctx context.Context, req *irmpb.ForceIncidentRoleHandoverRequest, opts ...gax.CallOption) (*irmpb.IncidentRoleAssignment, error) {
  776. ctx = insertMetadata(ctx, c.xGoogMetadata)
  777. opts = append(c.CallOptions.ForceIncidentRoleHandover[0:len(c.CallOptions.ForceIncidentRoleHandover):len(c.CallOptions.ForceIncidentRoleHandover)], opts...)
  778. var resp *irmpb.IncidentRoleAssignment
  779. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  780. var err error
  781. resp, err = c.incidentClient.ForceIncidentRoleHandover(ctx, req, settings.GRPC...)
  782. return err
  783. }, opts...)
  784. if err != nil {
  785. return nil, err
  786. }
  787. return resp, nil
  788. }
  789. // CancelIncidentRoleHandover cancels a role handover. This will fail if the 'proposed_assignee' field of
  790. // the IncidentRoleAssignment is not equal to the 'new_assignee' field of the
  791. // request.
  792. func (c *IncidentClient) CancelIncidentRoleHandover(ctx context.Context, req *irmpb.CancelIncidentRoleHandoverRequest, opts ...gax.CallOption) (*irmpb.IncidentRoleAssignment, error) {
  793. ctx = insertMetadata(ctx, c.xGoogMetadata)
  794. opts = append(c.CallOptions.CancelIncidentRoleHandover[0:len(c.CallOptions.CancelIncidentRoleHandover):len(c.CallOptions.CancelIncidentRoleHandover)], opts...)
  795. var resp *irmpb.IncidentRoleAssignment
  796. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  797. var err error
  798. resp, err = c.incidentClient.CancelIncidentRoleHandover(ctx, req, settings.GRPC...)
  799. return err
  800. }, opts...)
  801. if err != nil {
  802. return nil, err
  803. }
  804. return resp, nil
  805. }
  806. // AnnotationIterator manages a stream of *irmpb.Annotation.
  807. type AnnotationIterator struct {
  808. items []*irmpb.Annotation
  809. pageInfo *iterator.PageInfo
  810. nextFunc func() error
  811. // InternalFetch is for use by the Google Cloud Libraries only.
  812. // It is not part of the stable interface of this package.
  813. //
  814. // InternalFetch returns results from a single call to the underlying RPC.
  815. // The number of results is no greater than pageSize.
  816. // If there are no more results, nextPageToken is empty and err is nil.
  817. InternalFetch func(pageSize int, pageToken string) (results []*irmpb.Annotation, nextPageToken string, err error)
  818. }
  819. // PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
  820. func (it *AnnotationIterator) PageInfo() *iterator.PageInfo {
  821. return it.pageInfo
  822. }
  823. // Next returns the next result. Its second return value is iterator.Done if there are no more
  824. // results. Once Next returns Done, all subsequent calls will return Done.
  825. func (it *AnnotationIterator) Next() (*irmpb.Annotation, error) {
  826. var item *irmpb.Annotation
  827. if err := it.nextFunc(); err != nil {
  828. return item, err
  829. }
  830. item = it.items[0]
  831. it.items = it.items[1:]
  832. return item, nil
  833. }
  834. func (it *AnnotationIterator) bufLen() int {
  835. return len(it.items)
  836. }
  837. func (it *AnnotationIterator) takeBuf() interface{} {
  838. b := it.items
  839. it.items = nil
  840. return b
  841. }
  842. // ArtifactIterator manages a stream of *irmpb.Artifact.
  843. type ArtifactIterator struct {
  844. items []*irmpb.Artifact
  845. pageInfo *iterator.PageInfo
  846. nextFunc func() error
  847. // InternalFetch is for use by the Google Cloud Libraries only.
  848. // It is not part of the stable interface of this package.
  849. //
  850. // InternalFetch returns results from a single call to the underlying RPC.
  851. // The number of results is no greater than pageSize.
  852. // If there are no more results, nextPageToken is empty and err is nil.
  853. InternalFetch func(pageSize int, pageToken string) (results []*irmpb.Artifact, nextPageToken string, err error)
  854. }
  855. // PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
  856. func (it *ArtifactIterator) PageInfo() *iterator.PageInfo {
  857. return it.pageInfo
  858. }
  859. // Next returns the next result. Its second return value is iterator.Done if there are no more
  860. // results. Once Next returns Done, all subsequent calls will return Done.
  861. func (it *ArtifactIterator) Next() (*irmpb.Artifact, error) {
  862. var item *irmpb.Artifact
  863. if err := it.nextFunc(); err != nil {
  864. return item, err
  865. }
  866. item = it.items[0]
  867. it.items = it.items[1:]
  868. return item, nil
  869. }
  870. func (it *ArtifactIterator) bufLen() int {
  871. return len(it.items)
  872. }
  873. func (it *ArtifactIterator) takeBuf() interface{} {
  874. b := it.items
  875. it.items = nil
  876. return b
  877. }
  878. // IncidentIterator manages a stream of *irmpb.Incident.
  879. type IncidentIterator struct {
  880. items []*irmpb.Incident
  881. pageInfo *iterator.PageInfo
  882. nextFunc func() error
  883. // InternalFetch is for use by the Google Cloud Libraries only.
  884. // It is not part of the stable interface of this package.
  885. //
  886. // InternalFetch returns results from a single call to the underlying RPC.
  887. // The number of results is no greater than pageSize.
  888. // If there are no more results, nextPageToken is empty and err is nil.
  889. InternalFetch func(pageSize int, pageToken string) (results []*irmpb.Incident, nextPageToken string, err error)
  890. }
  891. // PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
  892. func (it *IncidentIterator) PageInfo() *iterator.PageInfo {
  893. return it.pageInfo
  894. }
  895. // Next returns the next result. Its second return value is iterator.Done if there are no more
  896. // results. Once Next returns Done, all subsequent calls will return Done.
  897. func (it *IncidentIterator) Next() (*irmpb.Incident, error) {
  898. var item *irmpb.Incident
  899. if err := it.nextFunc(); err != nil {
  900. return item, err
  901. }
  902. item = it.items[0]
  903. it.items = it.items[1:]
  904. return item, nil
  905. }
  906. func (it *IncidentIterator) bufLen() int {
  907. return len(it.items)
  908. }
  909. func (it *IncidentIterator) takeBuf() interface{} {
  910. b := it.items
  911. it.items = nil
  912. return b
  913. }
  914. // IncidentRoleAssignmentIterator manages a stream of *irmpb.IncidentRoleAssignment.
  915. type IncidentRoleAssignmentIterator struct {
  916. items []*irmpb.IncidentRoleAssignment
  917. pageInfo *iterator.PageInfo
  918. nextFunc func() error
  919. // InternalFetch is for use by the Google Cloud Libraries only.
  920. // It is not part of the stable interface of this package.
  921. //
  922. // InternalFetch returns results from a single call to the underlying RPC.
  923. // The number of results is no greater than pageSize.
  924. // If there are no more results, nextPageToken is empty and err is nil.
  925. InternalFetch func(pageSize int, pageToken string) (results []*irmpb.IncidentRoleAssignment, nextPageToken string, err error)
  926. }
  927. // PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
  928. func (it *IncidentRoleAssignmentIterator) PageInfo() *iterator.PageInfo {
  929. return it.pageInfo
  930. }
  931. // Next returns the next result. Its second return value is iterator.Done if there are no more
  932. // results. Once Next returns Done, all subsequent calls will return Done.
  933. func (it *IncidentRoleAssignmentIterator) Next() (*irmpb.IncidentRoleAssignment, error) {
  934. var item *irmpb.IncidentRoleAssignment
  935. if err := it.nextFunc(); err != nil {
  936. return item, err
  937. }
  938. item = it.items[0]
  939. it.items = it.items[1:]
  940. return item, nil
  941. }
  942. func (it *IncidentRoleAssignmentIterator) bufLen() int {
  943. return len(it.items)
  944. }
  945. func (it *IncidentRoleAssignmentIterator) takeBuf() interface{} {
  946. b := it.items
  947. it.items = nil
  948. return b
  949. }
  950. // SearchSimilarIncidentsResponse_ResultIterator manages a stream of *irmpb.SearchSimilarIncidentsResponse_Result.
  951. type SearchSimilarIncidentsResponse_ResultIterator struct {
  952. items []*irmpb.SearchSimilarIncidentsResponse_Result
  953. pageInfo *iterator.PageInfo
  954. nextFunc func() error
  955. // InternalFetch is for use by the Google Cloud Libraries only.
  956. // It is not part of the stable interface of this package.
  957. //
  958. // InternalFetch returns results from a single call to the underlying RPC.
  959. // The number of results is no greater than pageSize.
  960. // If there are no more results, nextPageToken is empty and err is nil.
  961. InternalFetch func(pageSize int, pageToken string) (results []*irmpb.SearchSimilarIncidentsResponse_Result, nextPageToken string, err error)
  962. }
  963. // PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
  964. func (it *SearchSimilarIncidentsResponse_ResultIterator) PageInfo() *iterator.PageInfo {
  965. return it.pageInfo
  966. }
  967. // Next returns the next result. Its second return value is iterator.Done if there are no more
  968. // results. Once Next returns Done, all subsequent calls will return Done.
  969. func (it *SearchSimilarIncidentsResponse_ResultIterator) Next() (*irmpb.SearchSimilarIncidentsResponse_Result, error) {
  970. var item *irmpb.SearchSimilarIncidentsResponse_Result
  971. if err := it.nextFunc(); err != nil {
  972. return item, err
  973. }
  974. item = it.items[0]
  975. it.items = it.items[1:]
  976. return item, nil
  977. }
  978. func (it *SearchSimilarIncidentsResponse_ResultIterator) bufLen() int {
  979. return len(it.items)
  980. }
  981. func (it *SearchSimilarIncidentsResponse_ResultIterator) takeBuf() interface{} {
  982. b := it.items
  983. it.items = nil
  984. return b
  985. }
  986. // SignalIterator manages a stream of *irmpb.Signal.
  987. type SignalIterator struct {
  988. items []*irmpb.Signal
  989. pageInfo *iterator.PageInfo
  990. nextFunc func() error
  991. // InternalFetch is for use by the Google Cloud Libraries only.
  992. // It is not part of the stable interface of this package.
  993. //
  994. // InternalFetch returns results from a single call to the underlying RPC.
  995. // The number of results is no greater than pageSize.
  996. // If there are no more results, nextPageToken is empty and err is nil.
  997. InternalFetch func(pageSize int, pageToken string) (results []*irmpb.Signal, nextPageToken string, err error)
  998. }
  999. // PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
  1000. func (it *SignalIterator) PageInfo() *iterator.PageInfo {
  1001. return it.pageInfo
  1002. }
  1003. // Next returns the next result. Its second return value is iterator.Done if there are no more
  1004. // results. Once Next returns Done, all subsequent calls will return Done.
  1005. func (it *SignalIterator) Next() (*irmpb.Signal, error) {
  1006. var item *irmpb.Signal
  1007. if err := it.nextFunc(); err != nil {
  1008. return item, err
  1009. }
  1010. item = it.items[0]
  1011. it.items = it.items[1:]
  1012. return item, nil
  1013. }
  1014. func (it *SignalIterator) bufLen() int {
  1015. return len(it.items)
  1016. }
  1017. func (it *SignalIterator) takeBuf() interface{} {
  1018. b := it.items
  1019. it.items = nil
  1020. return b
  1021. }
  1022. // SubscriptionIterator manages a stream of *irmpb.Subscription.
  1023. type SubscriptionIterator struct {
  1024. items []*irmpb.Subscription
  1025. pageInfo *iterator.PageInfo
  1026. nextFunc func() error
  1027. // InternalFetch is for use by the Google Cloud Libraries only.
  1028. // It is not part of the stable interface of this package.
  1029. //
  1030. // InternalFetch returns results from a single call to the underlying RPC.
  1031. // The number of results is no greater than pageSize.
  1032. // If there are no more results, nextPageToken is empty and err is nil.
  1033. InternalFetch func(pageSize int, pageToken string) (results []*irmpb.Subscription, nextPageToken string, err error)
  1034. }
  1035. // PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
  1036. func (it *SubscriptionIterator) PageInfo() *iterator.PageInfo {
  1037. return it.pageInfo
  1038. }
  1039. // Next returns the next result. Its second return value is iterator.Done if there are no more
  1040. // results. Once Next returns Done, all subsequent calls will return Done.
  1041. func (it *SubscriptionIterator) Next() (*irmpb.Subscription, error) {
  1042. var item *irmpb.Subscription
  1043. if err := it.nextFunc(); err != nil {
  1044. return item, err
  1045. }
  1046. item = it.items[0]
  1047. it.items = it.items[1:]
  1048. return item, nil
  1049. }
  1050. func (it *SubscriptionIterator) bufLen() int {
  1051. return len(it.items)
  1052. }
  1053. func (it *SubscriptionIterator) takeBuf() interface{} {
  1054. b := it.items
  1055. it.items = nil
  1056. return b
  1057. }
  1058. // TagIterator manages a stream of *irmpb.Tag.
  1059. type TagIterator struct {
  1060. items []*irmpb.Tag
  1061. pageInfo *iterator.PageInfo
  1062. nextFunc func() error
  1063. // InternalFetch is for use by the Google Cloud Libraries only.
  1064. // It is not part of the stable interface of this package.
  1065. //
  1066. // InternalFetch returns results from a single call to the underlying RPC.
  1067. // The number of results is no greater than pageSize.
  1068. // If there are no more results, nextPageToken is empty and err is nil.
  1069. InternalFetch func(pageSize int, pageToken string) (results []*irmpb.Tag, nextPageToken string, err error)
  1070. }
  1071. // PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
  1072. func (it *TagIterator) PageInfo() *iterator.PageInfo {
  1073. return it.pageInfo
  1074. }
  1075. // Next returns the next result. Its second return value is iterator.Done if there are no more
  1076. // results. Once Next returns Done, all subsequent calls will return Done.
  1077. func (it *TagIterator) Next() (*irmpb.Tag, error) {
  1078. var item *irmpb.Tag
  1079. if err := it.nextFunc(); err != nil {
  1080. return item, err
  1081. }
  1082. item = it.items[0]
  1083. it.items = it.items[1:]
  1084. return item, nil
  1085. }
  1086. func (it *TagIterator) bufLen() int {
  1087. return len(it.items)
  1088. }
  1089. func (it *TagIterator) takeBuf() interface{} {
  1090. b := it.items
  1091. it.items = nil
  1092. return b
  1093. }