// Copyright 2021 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 // // https://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. // Code generated by protoc-gen-go_gapic. DO NOT EDIT. package servicemanagement import ( "context" "fmt" "math" "net/url" "time" "cloud.google.com/go/longrunning" lroauto "cloud.google.com/go/longrunning/autogen" gax "github.com/googleapis/gax-go/v2" "google.golang.org/api/iterator" "google.golang.org/api/option" "google.golang.org/api/option/internaloption" gtransport "google.golang.org/api/transport/grpc" serviceconfigpb "google.golang.org/genproto/googleapis/api/serviceconfig" servicemanagementpb "google.golang.org/genproto/googleapis/api/servicemanagement/v1" longrunningpb "google.golang.org/genproto/googleapis/longrunning" "google.golang.org/grpc" "google.golang.org/grpc/metadata" "google.golang.org/protobuf/proto" ) var newServiceManagerClientHook clientHook // ServiceManagerCallOptions contains the retry settings for each method of ServiceManagerClient. type ServiceManagerCallOptions struct { ListServices []gax.CallOption GetService []gax.CallOption CreateService []gax.CallOption DeleteService []gax.CallOption UndeleteService []gax.CallOption ListServiceConfigs []gax.CallOption GetServiceConfig []gax.CallOption CreateServiceConfig []gax.CallOption SubmitConfigSource []gax.CallOption ListServiceRollouts []gax.CallOption GetServiceRollout []gax.CallOption CreateServiceRollout []gax.CallOption GenerateConfigReport []gax.CallOption EnableService []gax.CallOption DisableService []gax.CallOption } func defaultServiceManagerGRPCClientOptions() []option.ClientOption { return []option.ClientOption{ internaloption.WithDefaultEndpoint("servicemanagement.googleapis.com:443"), internaloption.WithDefaultMTLSEndpoint("servicemanagement.mtls.googleapis.com:443"), internaloption.WithDefaultAudience("https://servicemanagement.googleapis.com/"), internaloption.WithDefaultScopes(DefaultAuthScopes()...), internaloption.EnableJwtWithScope(), option.WithGRPCDialOption(grpc.WithDisableServiceConfig()), option.WithGRPCDialOption(grpc.WithDefaultCallOptions( grpc.MaxCallRecvMsgSize(math.MaxInt32))), } } func defaultServiceManagerCallOptions() *ServiceManagerCallOptions { return &ServiceManagerCallOptions{ ListServices: []gax.CallOption{}, GetService: []gax.CallOption{}, CreateService: []gax.CallOption{}, DeleteService: []gax.CallOption{}, UndeleteService: []gax.CallOption{}, ListServiceConfigs: []gax.CallOption{}, GetServiceConfig: []gax.CallOption{}, CreateServiceConfig: []gax.CallOption{}, SubmitConfigSource: []gax.CallOption{}, ListServiceRollouts: []gax.CallOption{}, GetServiceRollout: []gax.CallOption{}, CreateServiceRollout: []gax.CallOption{}, GenerateConfigReport: []gax.CallOption{}, EnableService: []gax.CallOption{}, DisableService: []gax.CallOption{}, } } // internalServiceManagerClient is an interface that defines the methods availaible from Service Management API. type internalServiceManagerClient interface { Close() error setGoogleClientInfo(...string) Connection() *grpc.ClientConn ListServices(context.Context, *servicemanagementpb.ListServicesRequest, ...gax.CallOption) *ManagedServiceIterator GetService(context.Context, *servicemanagementpb.GetServiceRequest, ...gax.CallOption) (*servicemanagementpb.ManagedService, error) CreateService(context.Context, *servicemanagementpb.CreateServiceRequest, ...gax.CallOption) (*CreateServiceOperation, error) CreateServiceOperation(name string) *CreateServiceOperation DeleteService(context.Context, *servicemanagementpb.DeleteServiceRequest, ...gax.CallOption) (*DeleteServiceOperation, error) DeleteServiceOperation(name string) *DeleteServiceOperation UndeleteService(context.Context, *servicemanagementpb.UndeleteServiceRequest, ...gax.CallOption) (*UndeleteServiceOperation, error) UndeleteServiceOperation(name string) *UndeleteServiceOperation ListServiceConfigs(context.Context, *servicemanagementpb.ListServiceConfigsRequest, ...gax.CallOption) *ServiceIterator GetServiceConfig(context.Context, *servicemanagementpb.GetServiceConfigRequest, ...gax.CallOption) (*serviceconfigpb.Service, error) CreateServiceConfig(context.Context, *servicemanagementpb.CreateServiceConfigRequest, ...gax.CallOption) (*serviceconfigpb.Service, error) SubmitConfigSource(context.Context, *servicemanagementpb.SubmitConfigSourceRequest, ...gax.CallOption) (*SubmitConfigSourceOperation, error) SubmitConfigSourceOperation(name string) *SubmitConfigSourceOperation ListServiceRollouts(context.Context, *servicemanagementpb.ListServiceRolloutsRequest, ...gax.CallOption) *RolloutIterator GetServiceRollout(context.Context, *servicemanagementpb.GetServiceRolloutRequest, ...gax.CallOption) (*servicemanagementpb.Rollout, error) CreateServiceRollout(context.Context, *servicemanagementpb.CreateServiceRolloutRequest, ...gax.CallOption) (*CreateServiceRolloutOperation, error) CreateServiceRolloutOperation(name string) *CreateServiceRolloutOperation GenerateConfigReport(context.Context, *servicemanagementpb.GenerateConfigReportRequest, ...gax.CallOption) (*servicemanagementpb.GenerateConfigReportResponse, error) EnableService(context.Context, *servicemanagementpb.EnableServiceRequest, ...gax.CallOption) (*EnableServiceOperation, error) EnableServiceOperation(name string) *EnableServiceOperation DisableService(context.Context, *servicemanagementpb.DisableServiceRequest, ...gax.CallOption) (*DisableServiceOperation, error) DisableServiceOperation(name string) *DisableServiceOperation } // ServiceManagerClient is a client for interacting with Service Management API. // Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. // // Google Service Management API (at https://cloud.google.com/service-management/overview) type ServiceManagerClient struct { // The internal transport-dependent client. internalClient internalServiceManagerClient // The call options for this service. CallOptions *ServiceManagerCallOptions // LROClient is used internally to handle long-running operations. // It is exposed so that its CallOptions can be modified if required. // Users should not Close this client. LROClient *lroauto.OperationsClient } // Wrapper methods routed to the internal client. // Close closes the connection to the API service. The user should invoke this when // the client is no longer required. func (c *ServiceManagerClient) Close() error { return c.internalClient.Close() } // setGoogleClientInfo sets the name and version of the application in // the `x-goog-api-client` header passed on each request. Intended for // use by Google-written clients. func (c *ServiceManagerClient) setGoogleClientInfo(keyval ...string) { c.internalClient.setGoogleClientInfo(keyval...) } // Connection returns a connection to the API service. // // Deprecated. func (c *ServiceManagerClient) Connection() *grpc.ClientConn { return c.internalClient.Connection() } // ListServices lists managed services. // // Returns all public services. For authenticated users, also returns all // services the calling user has “servicemanagement.services.get” permission // for. // // BETA: If the caller specifies the consumer_id, it returns only the // services enabled on the consumer. The consumer_id must have the format // of “project:{PROJECT-ID}”. func (c *ServiceManagerClient) ListServices(ctx context.Context, req *servicemanagementpb.ListServicesRequest, opts ...gax.CallOption) *ManagedServiceIterator { return c.internalClient.ListServices(ctx, req, opts...) } // GetService gets a managed service. Authentication is required unless the service is // public. func (c *ServiceManagerClient) GetService(ctx context.Context, req *servicemanagementpb.GetServiceRequest, opts ...gax.CallOption) (*servicemanagementpb.ManagedService, error) { return c.internalClient.GetService(ctx, req, opts...) } // CreateService creates a new managed service. // Please note one producer project can own no more than 20 services. // // Operation func (c *ServiceManagerClient) CreateService(ctx context.Context, req *servicemanagementpb.CreateServiceRequest, opts ...gax.CallOption) (*CreateServiceOperation, error) { return c.internalClient.CreateService(ctx, req, opts...) } // CreateServiceOperation returns a new CreateServiceOperation from a given name. // The name must be that of a previously created CreateServiceOperation, possibly from a different process. func (c *ServiceManagerClient) CreateServiceOperation(name string) *CreateServiceOperation { return c.internalClient.CreateServiceOperation(name) } // DeleteService deletes a managed service. This method will change the service to the // Soft-Delete state for 30 days. Within this period, service producers may // call UndeleteService to restore the service. // After 30 days, the service will be permanently deleted. // // Operation func (c *ServiceManagerClient) DeleteService(ctx context.Context, req *servicemanagementpb.DeleteServiceRequest, opts ...gax.CallOption) (*DeleteServiceOperation, error) { return c.internalClient.DeleteService(ctx, req, opts...) } // DeleteServiceOperation returns a new DeleteServiceOperation from a given name. // The name must be that of a previously created DeleteServiceOperation, possibly from a different process. func (c *ServiceManagerClient) DeleteServiceOperation(name string) *DeleteServiceOperation { return c.internalClient.DeleteServiceOperation(name) } // UndeleteService revives a previously deleted managed service. The method restores the // service using the configuration at the time the service was deleted. // The target service must exist and must have been deleted within the // last 30 days. // // Operation func (c *ServiceManagerClient) UndeleteService(ctx context.Context, req *servicemanagementpb.UndeleteServiceRequest, opts ...gax.CallOption) (*UndeleteServiceOperation, error) { return c.internalClient.UndeleteService(ctx, req, opts...) } // UndeleteServiceOperation returns a new UndeleteServiceOperation from a given name. // The name must be that of a previously created UndeleteServiceOperation, possibly from a different process. func (c *ServiceManagerClient) UndeleteServiceOperation(name string) *UndeleteServiceOperation { return c.internalClient.UndeleteServiceOperation(name) } // ListServiceConfigs lists the history of the service configuration for a managed service, // from the newest to the oldest. func (c *ServiceManagerClient) ListServiceConfigs(ctx context.Context, req *servicemanagementpb.ListServiceConfigsRequest, opts ...gax.CallOption) *ServiceIterator { return c.internalClient.ListServiceConfigs(ctx, req, opts...) } // GetServiceConfig gets a service configuration (version) for a managed service. func (c *ServiceManagerClient) GetServiceConfig(ctx context.Context, req *servicemanagementpb.GetServiceConfigRequest, opts ...gax.CallOption) (*serviceconfigpb.Service, error) { return c.internalClient.GetServiceConfig(ctx, req, opts...) } // CreateServiceConfig creates a new service configuration (version) for a managed service. // This method only stores the service configuration. To roll out the service // configuration to backend systems please call // CreateServiceRollout. // // Only the 100 most recent service configurations and ones referenced by // existing rollouts are kept for each service. The rest will be deleted // eventually. func (c *ServiceManagerClient) CreateServiceConfig(ctx context.Context, req *servicemanagementpb.CreateServiceConfigRequest, opts ...gax.CallOption) (*serviceconfigpb.Service, error) { return c.internalClient.CreateServiceConfig(ctx, req, opts...) } // SubmitConfigSource creates a new service configuration (version) for a managed service based // on // user-supplied configuration source files (for example: OpenAPI // Specification). This method stores the source configurations as well as the // generated service configuration. To rollout the service configuration to // other services, // please call CreateServiceRollout. // // Only the 100 most recent configuration sources and ones referenced by // existing service configurtions are kept for each service. The rest will be // deleted eventually. // // Operation func (c *ServiceManagerClient) SubmitConfigSource(ctx context.Context, req *servicemanagementpb.SubmitConfigSourceRequest, opts ...gax.CallOption) (*SubmitConfigSourceOperation, error) { return c.internalClient.SubmitConfigSource(ctx, req, opts...) } // SubmitConfigSourceOperation returns a new SubmitConfigSourceOperation from a given name. // The name must be that of a previously created SubmitConfigSourceOperation, possibly from a different process. func (c *ServiceManagerClient) SubmitConfigSourceOperation(name string) *SubmitConfigSourceOperation { return c.internalClient.SubmitConfigSourceOperation(name) } // ListServiceRollouts lists the history of the service configuration rollouts for a managed // service, from the newest to the oldest. func (c *ServiceManagerClient) ListServiceRollouts(ctx context.Context, req *servicemanagementpb.ListServiceRolloutsRequest, opts ...gax.CallOption) *RolloutIterator { return c.internalClient.ListServiceRollouts(ctx, req, opts...) } // GetServiceRollout gets a service configuration rollout. func (c *ServiceManagerClient) GetServiceRollout(ctx context.Context, req *servicemanagementpb.GetServiceRolloutRequest, opts ...gax.CallOption) (*servicemanagementpb.Rollout, error) { return c.internalClient.GetServiceRollout(ctx, req, opts...) } // CreateServiceRollout creates a new service configuration rollout. Based on rollout, the // Google Service Management will roll out the service configurations to // different backend services. For example, the logging configuration will be // pushed to Google Cloud Logging. // // Please note that any previous pending and running Rollouts and associated // Operations will be automatically cancelled so that the latest Rollout will // not be blocked by previous Rollouts. // // Only the 100 most recent (in any state) and the last 10 successful (if not // already part of the set of 100 most recent) rollouts are kept for each // service. The rest will be deleted eventually. // // Operation func (c *ServiceManagerClient) CreateServiceRollout(ctx context.Context, req *servicemanagementpb.CreateServiceRolloutRequest, opts ...gax.CallOption) (*CreateServiceRolloutOperation, error) { return c.internalClient.CreateServiceRollout(ctx, req, opts...) } // CreateServiceRolloutOperation returns a new CreateServiceRolloutOperation from a given name. // The name must be that of a previously created CreateServiceRolloutOperation, possibly from a different process. func (c *ServiceManagerClient) CreateServiceRolloutOperation(name string) *CreateServiceRolloutOperation { return c.internalClient.CreateServiceRolloutOperation(name) } // GenerateConfigReport generates and returns a report (errors, warnings and changes from // existing configurations) associated with // GenerateConfigReportRequest.new_value // // If GenerateConfigReportRequest.old_value is specified, // GenerateConfigReportRequest will contain a single ChangeReport based on the // comparison between GenerateConfigReportRequest.new_value and // GenerateConfigReportRequest.old_value. // If GenerateConfigReportRequest.old_value is not specified, this method // will compare GenerateConfigReportRequest.new_value with the last pushed // service configuration. func (c *ServiceManagerClient) GenerateConfigReport(ctx context.Context, req *servicemanagementpb.GenerateConfigReportRequest, opts ...gax.CallOption) (*servicemanagementpb.GenerateConfigReportResponse, error) { return c.internalClient.GenerateConfigReport(ctx, req, opts...) } // EnableService enables a service for a project, so it can be used // for the project. See // Cloud Auth Guide (at https://cloud.google.com/docs/authentication) for // more information. // // Operation // // Deprecated: EnableService may be removed in a future version. func (c *ServiceManagerClient) EnableService(ctx context.Context, req *servicemanagementpb.EnableServiceRequest, opts ...gax.CallOption) (*EnableServiceOperation, error) { return c.internalClient.EnableService(ctx, req, opts...) } // EnableServiceOperation returns a new EnableServiceOperation from a given name. // The name must be that of a previously created EnableServiceOperation, possibly from a different process. func (c *ServiceManagerClient) EnableServiceOperation(name string) *EnableServiceOperation { return c.internalClient.EnableServiceOperation(name) } // DisableService disables a service for a project, so it can no longer be // be used for the project. It prevents accidental usage that may cause // unexpected billing charges or security leaks. // // Operation // // Deprecated: DisableService may be removed in a future version. func (c *ServiceManagerClient) DisableService(ctx context.Context, req *servicemanagementpb.DisableServiceRequest, opts ...gax.CallOption) (*DisableServiceOperation, error) { return c.internalClient.DisableService(ctx, req, opts...) } // DisableServiceOperation returns a new DisableServiceOperation from a given name. // The name must be that of a previously created DisableServiceOperation, possibly from a different process. func (c *ServiceManagerClient) DisableServiceOperation(name string) *DisableServiceOperation { return c.internalClient.DisableServiceOperation(name) } // serviceManagerGRPCClient is a client for interacting with Service Management API over gRPC transport. // // Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. type serviceManagerGRPCClient struct { // Connection pool of gRPC connections to the service. connPool gtransport.ConnPool // flag to opt out of default deadlines via GOOGLE_API_GO_EXPERIMENTAL_DISABLE_DEFAULT_DEADLINE disableDeadlines bool // Points back to the CallOptions field of the containing ServiceManagerClient CallOptions **ServiceManagerCallOptions // The gRPC API client. serviceManagerClient servicemanagementpb.ServiceManagerClient // LROClient is used internally to handle long-running operations. // It is exposed so that its CallOptions can be modified if required. // Users should not Close this client. LROClient **lroauto.OperationsClient // The x-goog-* metadata to be sent with each request. xGoogMetadata metadata.MD } // NewServiceManagerClient creates a new service manager client based on gRPC. // The returned client must be Closed when it is done being used to clean up its underlying connections. // // Google Service Management API (at https://cloud.google.com/service-management/overview) func NewServiceManagerClient(ctx context.Context, opts ...option.ClientOption) (*ServiceManagerClient, error) { clientOpts := defaultServiceManagerGRPCClientOptions() if newServiceManagerClientHook != nil { hookOpts, err := newServiceManagerClientHook(ctx, clientHookParams{}) if err != nil { return nil, err } clientOpts = append(clientOpts, hookOpts...) } disableDeadlines, err := checkDisableDeadlines() if err != nil { return nil, err } connPool, err := gtransport.DialPool(ctx, append(clientOpts, opts...)...) if err != nil { return nil, err } client := ServiceManagerClient{CallOptions: defaultServiceManagerCallOptions()} c := &serviceManagerGRPCClient{ connPool: connPool, disableDeadlines: disableDeadlines, serviceManagerClient: servicemanagementpb.NewServiceManagerClient(connPool), CallOptions: &client.CallOptions, } c.setGoogleClientInfo() client.internalClient = c client.LROClient, err = lroauto.NewOperationsClient(ctx, gtransport.WithConnPool(connPool)) if err != nil { // This error "should not happen", since we are just reusing old connection pool // and never actually need to dial. // If this does happen, we could leak connp. However, we cannot close conn: // If the user invoked the constructor with option.WithGRPCConn, // we would close a connection that's still in use. // TODO: investigate error conditions. return nil, err } c.LROClient = &client.LROClient return &client, nil } // Connection returns a connection to the API service. // // Deprecated. func (c *serviceManagerGRPCClient) Connection() *grpc.ClientConn { return c.connPool.Conn() } // setGoogleClientInfo sets the name and version of the application in // the `x-goog-api-client` header passed on each request. Intended for // use by Google-written clients. func (c *serviceManagerGRPCClient) setGoogleClientInfo(keyval ...string) { kv := append([]string{"gl-go", versionGo()}, keyval...) kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version) c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...)) } // Close closes the connection to the API service. The user should invoke this when // the client is no longer required. func (c *serviceManagerGRPCClient) Close() error { return c.connPool.Close() } func (c *serviceManagerGRPCClient) ListServices(ctx context.Context, req *servicemanagementpb.ListServicesRequest, opts ...gax.CallOption) *ManagedServiceIterator { ctx = insertMetadata(ctx, c.xGoogMetadata) opts = append((*c.CallOptions).ListServices[0:len((*c.CallOptions).ListServices):len((*c.CallOptions).ListServices)], opts...) it := &ManagedServiceIterator{} req = proto.Clone(req).(*servicemanagementpb.ListServicesRequest) it.InternalFetch = func(pageSize int, pageToken string) ([]*servicemanagementpb.ManagedService, string, error) { resp := &servicemanagementpb.ListServicesResponse{} if pageToken != "" { req.PageToken = pageToken } if pageSize > math.MaxInt32 { req.PageSize = math.MaxInt32 } else if pageSize != 0 { req.PageSize = int32(pageSize) } err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { var err error resp, err = c.serviceManagerClient.ListServices(ctx, req, settings.GRPC...) return err }, opts...) if err != nil { return nil, "", err } it.Response = resp return resp.GetServices(), resp.GetNextPageToken(), nil } fetch := func(pageSize int, pageToken string) (string, error) { items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) if err != nil { return "", err } it.items = append(it.items, items...) return nextPageToken, nil } it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) it.pageInfo.MaxSize = int(req.GetPageSize()) it.pageInfo.Token = req.GetPageToken() return it } func (c *serviceManagerGRPCClient) GetService(ctx context.Context, req *servicemanagementpb.GetServiceRequest, opts ...gax.CallOption) (*servicemanagementpb.ManagedService, error) { if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { cctx, cancel := context.WithTimeout(ctx, 10000*time.Millisecond) defer cancel() ctx = cctx } md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "service_name", url.QueryEscape(req.GetServiceName()))) ctx = insertMetadata(ctx, c.xGoogMetadata, md) opts = append((*c.CallOptions).GetService[0:len((*c.CallOptions).GetService):len((*c.CallOptions).GetService)], opts...) var resp *servicemanagementpb.ManagedService err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { var err error resp, err = c.serviceManagerClient.GetService(ctx, req, settings.GRPC...) return err }, opts...) if err != nil { return nil, err } return resp, nil } func (c *serviceManagerGRPCClient) CreateService(ctx context.Context, req *servicemanagementpb.CreateServiceRequest, opts ...gax.CallOption) (*CreateServiceOperation, error) { if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { cctx, cancel := context.WithTimeout(ctx, 10000*time.Millisecond) defer cancel() ctx = cctx } ctx = insertMetadata(ctx, c.xGoogMetadata) opts = append((*c.CallOptions).CreateService[0:len((*c.CallOptions).CreateService):len((*c.CallOptions).CreateService)], opts...) var resp *longrunningpb.Operation err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { var err error resp, err = c.serviceManagerClient.CreateService(ctx, req, settings.GRPC...) return err }, opts...) if err != nil { return nil, err } return &CreateServiceOperation{ lro: longrunning.InternalNewOperation(*c.LROClient, resp), }, nil } func (c *serviceManagerGRPCClient) DeleteService(ctx context.Context, req *servicemanagementpb.DeleteServiceRequest, opts ...gax.CallOption) (*DeleteServiceOperation, error) { if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { cctx, cancel := context.WithTimeout(ctx, 10000*time.Millisecond) defer cancel() ctx = cctx } md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "service_name", url.QueryEscape(req.GetServiceName()))) ctx = insertMetadata(ctx, c.xGoogMetadata, md) opts = append((*c.CallOptions).DeleteService[0:len((*c.CallOptions).DeleteService):len((*c.CallOptions).DeleteService)], opts...) var resp *longrunningpb.Operation err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { var err error resp, err = c.serviceManagerClient.DeleteService(ctx, req, settings.GRPC...) return err }, opts...) if err != nil { return nil, err } return &DeleteServiceOperation{ lro: longrunning.InternalNewOperation(*c.LROClient, resp), }, nil } func (c *serviceManagerGRPCClient) UndeleteService(ctx context.Context, req *servicemanagementpb.UndeleteServiceRequest, opts ...gax.CallOption) (*UndeleteServiceOperation, error) { if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { cctx, cancel := context.WithTimeout(ctx, 10000*time.Millisecond) defer cancel() ctx = cctx } md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "service_name", url.QueryEscape(req.GetServiceName()))) ctx = insertMetadata(ctx, c.xGoogMetadata, md) opts = append((*c.CallOptions).UndeleteService[0:len((*c.CallOptions).UndeleteService):len((*c.CallOptions).UndeleteService)], opts...) var resp *longrunningpb.Operation err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { var err error resp, err = c.serviceManagerClient.UndeleteService(ctx, req, settings.GRPC...) return err }, opts...) if err != nil { return nil, err } return &UndeleteServiceOperation{ lro: longrunning.InternalNewOperation(*c.LROClient, resp), }, nil } func (c *serviceManagerGRPCClient) ListServiceConfigs(ctx context.Context, req *servicemanagementpb.ListServiceConfigsRequest, opts ...gax.CallOption) *ServiceIterator { md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "service_name", url.QueryEscape(req.GetServiceName()))) ctx = insertMetadata(ctx, c.xGoogMetadata, md) opts = append((*c.CallOptions).ListServiceConfigs[0:len((*c.CallOptions).ListServiceConfigs):len((*c.CallOptions).ListServiceConfigs)], opts...) it := &ServiceIterator{} req = proto.Clone(req).(*servicemanagementpb.ListServiceConfigsRequest) it.InternalFetch = func(pageSize int, pageToken string) ([]*serviceconfigpb.Service, string, error) { resp := &servicemanagementpb.ListServiceConfigsResponse{} if pageToken != "" { req.PageToken = pageToken } if pageSize > math.MaxInt32 { req.PageSize = math.MaxInt32 } else if pageSize != 0 { req.PageSize = int32(pageSize) } err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { var err error resp, err = c.serviceManagerClient.ListServiceConfigs(ctx, req, settings.GRPC...) return err }, opts...) if err != nil { return nil, "", err } it.Response = resp return resp.GetServiceConfigs(), resp.GetNextPageToken(), nil } fetch := func(pageSize int, pageToken string) (string, error) { items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) if err != nil { return "", err } it.items = append(it.items, items...) return nextPageToken, nil } it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) it.pageInfo.MaxSize = int(req.GetPageSize()) it.pageInfo.Token = req.GetPageToken() return it } func (c *serviceManagerGRPCClient) GetServiceConfig(ctx context.Context, req *servicemanagementpb.GetServiceConfigRequest, opts ...gax.CallOption) (*serviceconfigpb.Service, error) { if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { cctx, cancel := context.WithTimeout(ctx, 10000*time.Millisecond) defer cancel() ctx = cctx } md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v", "service_name", url.QueryEscape(req.GetServiceName()), "config_id", url.QueryEscape(req.GetConfigId()))) ctx = insertMetadata(ctx, c.xGoogMetadata, md) opts = append((*c.CallOptions).GetServiceConfig[0:len((*c.CallOptions).GetServiceConfig):len((*c.CallOptions).GetServiceConfig)], opts...) var resp *serviceconfigpb.Service err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { var err error resp, err = c.serviceManagerClient.GetServiceConfig(ctx, req, settings.GRPC...) return err }, opts...) if err != nil { return nil, err } return resp, nil } func (c *serviceManagerGRPCClient) CreateServiceConfig(ctx context.Context, req *servicemanagementpb.CreateServiceConfigRequest, opts ...gax.CallOption) (*serviceconfigpb.Service, error) { if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { cctx, cancel := context.WithTimeout(ctx, 10000*time.Millisecond) defer cancel() ctx = cctx } md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "service_name", url.QueryEscape(req.GetServiceName()))) ctx = insertMetadata(ctx, c.xGoogMetadata, md) opts = append((*c.CallOptions).CreateServiceConfig[0:len((*c.CallOptions).CreateServiceConfig):len((*c.CallOptions).CreateServiceConfig)], opts...) var resp *serviceconfigpb.Service err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { var err error resp, err = c.serviceManagerClient.CreateServiceConfig(ctx, req, settings.GRPC...) return err }, opts...) if err != nil { return nil, err } return resp, nil } func (c *serviceManagerGRPCClient) SubmitConfigSource(ctx context.Context, req *servicemanagementpb.SubmitConfigSourceRequest, opts ...gax.CallOption) (*SubmitConfigSourceOperation, error) { if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { cctx, cancel := context.WithTimeout(ctx, 10000*time.Millisecond) defer cancel() ctx = cctx } md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "service_name", url.QueryEscape(req.GetServiceName()))) ctx = insertMetadata(ctx, c.xGoogMetadata, md) opts = append((*c.CallOptions).SubmitConfigSource[0:len((*c.CallOptions).SubmitConfigSource):len((*c.CallOptions).SubmitConfigSource)], opts...) var resp *longrunningpb.Operation err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { var err error resp, err = c.serviceManagerClient.SubmitConfigSource(ctx, req, settings.GRPC...) return err }, opts...) if err != nil { return nil, err } return &SubmitConfigSourceOperation{ lro: longrunning.InternalNewOperation(*c.LROClient, resp), }, nil } func (c *serviceManagerGRPCClient) ListServiceRollouts(ctx context.Context, req *servicemanagementpb.ListServiceRolloutsRequest, opts ...gax.CallOption) *RolloutIterator { md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "service_name", url.QueryEscape(req.GetServiceName()))) ctx = insertMetadata(ctx, c.xGoogMetadata, md) opts = append((*c.CallOptions).ListServiceRollouts[0:len((*c.CallOptions).ListServiceRollouts):len((*c.CallOptions).ListServiceRollouts)], opts...) it := &RolloutIterator{} req = proto.Clone(req).(*servicemanagementpb.ListServiceRolloutsRequest) it.InternalFetch = func(pageSize int, pageToken string) ([]*servicemanagementpb.Rollout, string, error) { resp := &servicemanagementpb.ListServiceRolloutsResponse{} if pageToken != "" { req.PageToken = pageToken } if pageSize > math.MaxInt32 { req.PageSize = math.MaxInt32 } else if pageSize != 0 { req.PageSize = int32(pageSize) } err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { var err error resp, err = c.serviceManagerClient.ListServiceRollouts(ctx, req, settings.GRPC...) return err }, opts...) if err != nil { return nil, "", err } it.Response = resp return resp.GetRollouts(), resp.GetNextPageToken(), nil } fetch := func(pageSize int, pageToken string) (string, error) { items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) if err != nil { return "", err } it.items = append(it.items, items...) return nextPageToken, nil } it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) it.pageInfo.MaxSize = int(req.GetPageSize()) it.pageInfo.Token = req.GetPageToken() return it } func (c *serviceManagerGRPCClient) GetServiceRollout(ctx context.Context, req *servicemanagementpb.GetServiceRolloutRequest, opts ...gax.CallOption) (*servicemanagementpb.Rollout, error) { if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { cctx, cancel := context.WithTimeout(ctx, 10000*time.Millisecond) defer cancel() ctx = cctx } md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v", "service_name", url.QueryEscape(req.GetServiceName()), "rollout_id", url.QueryEscape(req.GetRolloutId()))) ctx = insertMetadata(ctx, c.xGoogMetadata, md) opts = append((*c.CallOptions).GetServiceRollout[0:len((*c.CallOptions).GetServiceRollout):len((*c.CallOptions).GetServiceRollout)], opts...) var resp *servicemanagementpb.Rollout err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { var err error resp, err = c.serviceManagerClient.GetServiceRollout(ctx, req, settings.GRPC...) return err }, opts...) if err != nil { return nil, err } return resp, nil } func (c *serviceManagerGRPCClient) CreateServiceRollout(ctx context.Context, req *servicemanagementpb.CreateServiceRolloutRequest, opts ...gax.CallOption) (*CreateServiceRolloutOperation, error) { if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { cctx, cancel := context.WithTimeout(ctx, 10000*time.Millisecond) defer cancel() ctx = cctx } md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "service_name", url.QueryEscape(req.GetServiceName()))) ctx = insertMetadata(ctx, c.xGoogMetadata, md) opts = append((*c.CallOptions).CreateServiceRollout[0:len((*c.CallOptions).CreateServiceRollout):len((*c.CallOptions).CreateServiceRollout)], opts...) var resp *longrunningpb.Operation err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { var err error resp, err = c.serviceManagerClient.CreateServiceRollout(ctx, req, settings.GRPC...) return err }, opts...) if err != nil { return nil, err } return &CreateServiceRolloutOperation{ lro: longrunning.InternalNewOperation(*c.LROClient, resp), }, nil } func (c *serviceManagerGRPCClient) GenerateConfigReport(ctx context.Context, req *servicemanagementpb.GenerateConfigReportRequest, opts ...gax.CallOption) (*servicemanagementpb.GenerateConfigReportResponse, error) { if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { cctx, cancel := context.WithTimeout(ctx, 10000*time.Millisecond) defer cancel() ctx = cctx } ctx = insertMetadata(ctx, c.xGoogMetadata) opts = append((*c.CallOptions).GenerateConfigReport[0:len((*c.CallOptions).GenerateConfigReport):len((*c.CallOptions).GenerateConfigReport)], opts...) var resp *servicemanagementpb.GenerateConfigReportResponse err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { var err error resp, err = c.serviceManagerClient.GenerateConfigReport(ctx, req, settings.GRPC...) return err }, opts...) if err != nil { return nil, err } return resp, nil } func (c *serviceManagerGRPCClient) EnableService(ctx context.Context, req *servicemanagementpb.EnableServiceRequest, opts ...gax.CallOption) (*EnableServiceOperation, error) { if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { cctx, cancel := context.WithTimeout(ctx, 10000*time.Millisecond) defer cancel() ctx = cctx } md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "service_name", url.QueryEscape(req.GetServiceName()))) ctx = insertMetadata(ctx, c.xGoogMetadata, md) opts = append((*c.CallOptions).EnableService[0:len((*c.CallOptions).EnableService):len((*c.CallOptions).EnableService)], opts...) var resp *longrunningpb.Operation err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { var err error resp, err = c.serviceManagerClient.EnableService(ctx, req, settings.GRPC...) return err }, opts...) if err != nil { return nil, err } return &EnableServiceOperation{ lro: longrunning.InternalNewOperation(*c.LROClient, resp), }, nil } func (c *serviceManagerGRPCClient) DisableService(ctx context.Context, req *servicemanagementpb.DisableServiceRequest, opts ...gax.CallOption) (*DisableServiceOperation, error) { if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { cctx, cancel := context.WithTimeout(ctx, 10000*time.Millisecond) defer cancel() ctx = cctx } md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "service_name", url.QueryEscape(req.GetServiceName()))) ctx = insertMetadata(ctx, c.xGoogMetadata, md) opts = append((*c.CallOptions).DisableService[0:len((*c.CallOptions).DisableService):len((*c.CallOptions).DisableService)], opts...) var resp *longrunningpb.Operation err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { var err error resp, err = c.serviceManagerClient.DisableService(ctx, req, settings.GRPC...) return err }, opts...) if err != nil { return nil, err } return &DisableServiceOperation{ lro: longrunning.InternalNewOperation(*c.LROClient, resp), }, nil } // CreateServiceOperation manages a long-running operation from CreateService. type CreateServiceOperation struct { lro *longrunning.Operation } // CreateServiceOperation returns a new CreateServiceOperation from a given name. // The name must be that of a previously created CreateServiceOperation, possibly from a different process. func (c *serviceManagerGRPCClient) CreateServiceOperation(name string) *CreateServiceOperation { return &CreateServiceOperation{ lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), } } // Wait blocks until the long-running operation is completed, returning the response and any errors encountered. // // See documentation of Poll for error-handling information. func (op *CreateServiceOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*servicemanagementpb.ManagedService, error) { var resp servicemanagementpb.ManagedService if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { return nil, err } return &resp, nil } // Poll fetches the latest state of the long-running operation. // // Poll also fetches the latest metadata, which can be retrieved by Metadata. // // If Poll fails, the error is returned and op is unmodified. If Poll succeeds and // the operation has completed with failure, the error is returned and op.Done will return true. // If Poll succeeds and the operation has completed successfully, // op.Done will return true, and the response of the operation is returned. // If Poll succeeds and the operation has not completed, the returned response and error are both nil. func (op *CreateServiceOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*servicemanagementpb.ManagedService, error) { var resp servicemanagementpb.ManagedService if err := op.lro.Poll(ctx, &resp, opts...); err != nil { return nil, err } if !op.Done() { return nil, nil } return &resp, nil } // Metadata returns metadata associated with the long-running operation. // Metadata itself does not contact the server, but Poll does. // To get the latest metadata, call this method after a successful call to Poll. // If the metadata is not available, the returned metadata and error are both nil. func (op *CreateServiceOperation) Metadata() (*servicemanagementpb.OperationMetadata, error) { var meta servicemanagementpb.OperationMetadata if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { return nil, nil } else if err != nil { return nil, err } return &meta, nil } // Done reports whether the long-running operation has completed. func (op *CreateServiceOperation) Done() bool { return op.lro.Done() } // Name returns the name of the long-running operation. // The name is assigned by the server and is unique within the service from which the operation is created. func (op *CreateServiceOperation) Name() string { return op.lro.Name() } // CreateServiceRolloutOperation manages a long-running operation from CreateServiceRollout. type CreateServiceRolloutOperation struct { lro *longrunning.Operation } // CreateServiceRolloutOperation returns a new CreateServiceRolloutOperation from a given name. // The name must be that of a previously created CreateServiceRolloutOperation, possibly from a different process. func (c *serviceManagerGRPCClient) CreateServiceRolloutOperation(name string) *CreateServiceRolloutOperation { return &CreateServiceRolloutOperation{ lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), } } // Wait blocks until the long-running operation is completed, returning the response and any errors encountered. // // See documentation of Poll for error-handling information. func (op *CreateServiceRolloutOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*servicemanagementpb.Rollout, error) { var resp servicemanagementpb.Rollout if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { return nil, err } return &resp, nil } // Poll fetches the latest state of the long-running operation. // // Poll also fetches the latest metadata, which can be retrieved by Metadata. // // If Poll fails, the error is returned and op is unmodified. If Poll succeeds and // the operation has completed with failure, the error is returned and op.Done will return true. // If Poll succeeds and the operation has completed successfully, // op.Done will return true, and the response of the operation is returned. // If Poll succeeds and the operation has not completed, the returned response and error are both nil. func (op *CreateServiceRolloutOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*servicemanagementpb.Rollout, error) { var resp servicemanagementpb.Rollout if err := op.lro.Poll(ctx, &resp, opts...); err != nil { return nil, err } if !op.Done() { return nil, nil } return &resp, nil } // Metadata returns metadata associated with the long-running operation. // Metadata itself does not contact the server, but Poll does. // To get the latest metadata, call this method after a successful call to Poll. // If the metadata is not available, the returned metadata and error are both nil. func (op *CreateServiceRolloutOperation) Metadata() (*servicemanagementpb.OperationMetadata, error) { var meta servicemanagementpb.OperationMetadata if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { return nil, nil } else if err != nil { return nil, err } return &meta, nil } // Done reports whether the long-running operation has completed. func (op *CreateServiceRolloutOperation) Done() bool { return op.lro.Done() } // Name returns the name of the long-running operation. // The name is assigned by the server and is unique within the service from which the operation is created. func (op *CreateServiceRolloutOperation) Name() string { return op.lro.Name() } // DeleteServiceOperation manages a long-running operation from DeleteService. type DeleteServiceOperation struct { lro *longrunning.Operation } // DeleteServiceOperation returns a new DeleteServiceOperation from a given name. // The name must be that of a previously created DeleteServiceOperation, possibly from a different process. func (c *serviceManagerGRPCClient) DeleteServiceOperation(name string) *DeleteServiceOperation { return &DeleteServiceOperation{ lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), } } // Wait blocks until the long-running operation is completed, returning the response and any errors encountered. // // See documentation of Poll for error-handling information. func (op *DeleteServiceOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { return op.lro.WaitWithInterval(ctx, nil, time.Minute, opts...) } // Poll fetches the latest state of the long-running operation. // // Poll also fetches the latest metadata, which can be retrieved by Metadata. // // If Poll fails, the error is returned and op is unmodified. If Poll succeeds and // the operation has completed with failure, the error is returned and op.Done will return true. // If Poll succeeds and the operation has completed successfully, // op.Done will return true, and the response of the operation is returned. // If Poll succeeds and the operation has not completed, the returned response and error are both nil. func (op *DeleteServiceOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { return op.lro.Poll(ctx, nil, opts...) } // Metadata returns metadata associated with the long-running operation. // Metadata itself does not contact the server, but Poll does. // To get the latest metadata, call this method after a successful call to Poll. // If the metadata is not available, the returned metadata and error are both nil. func (op *DeleteServiceOperation) Metadata() (*servicemanagementpb.OperationMetadata, error) { var meta servicemanagementpb.OperationMetadata if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { return nil, nil } else if err != nil { return nil, err } return &meta, nil } // Done reports whether the long-running operation has completed. func (op *DeleteServiceOperation) Done() bool { return op.lro.Done() } // Name returns the name of the long-running operation. // The name is assigned by the server and is unique within the service from which the operation is created. func (op *DeleteServiceOperation) Name() string { return op.lro.Name() } // DisableServiceOperation manages a long-running operation from DisableService. type DisableServiceOperation struct { lro *longrunning.Operation } // DisableServiceOperation returns a new DisableServiceOperation from a given name. // The name must be that of a previously created DisableServiceOperation, possibly from a different process. func (c *serviceManagerGRPCClient) DisableServiceOperation(name string) *DisableServiceOperation { return &DisableServiceOperation{ lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), } } // Wait blocks until the long-running operation is completed, returning the response and any errors encountered. // // See documentation of Poll for error-handling information. func (op *DisableServiceOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*servicemanagementpb.DisableServiceResponse, error) { var resp servicemanagementpb.DisableServiceResponse if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { return nil, err } return &resp, nil } // Poll fetches the latest state of the long-running operation. // // Poll also fetches the latest metadata, which can be retrieved by Metadata. // // If Poll fails, the error is returned and op is unmodified. If Poll succeeds and // the operation has completed with failure, the error is returned and op.Done will return true. // If Poll succeeds and the operation has completed successfully, // op.Done will return true, and the response of the operation is returned. // If Poll succeeds and the operation has not completed, the returned response and error are both nil. func (op *DisableServiceOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*servicemanagementpb.DisableServiceResponse, error) { var resp servicemanagementpb.DisableServiceResponse if err := op.lro.Poll(ctx, &resp, opts...); err != nil { return nil, err } if !op.Done() { return nil, nil } return &resp, nil } // Metadata returns metadata associated with the long-running operation. // Metadata itself does not contact the server, but Poll does. // To get the latest metadata, call this method after a successful call to Poll. // If the metadata is not available, the returned metadata and error are both nil. func (op *DisableServiceOperation) Metadata() (*servicemanagementpb.OperationMetadata, error) { var meta servicemanagementpb.OperationMetadata if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { return nil, nil } else if err != nil { return nil, err } return &meta, nil } // Done reports whether the long-running operation has completed. func (op *DisableServiceOperation) Done() bool { return op.lro.Done() } // Name returns the name of the long-running operation. // The name is assigned by the server and is unique within the service from which the operation is created. func (op *DisableServiceOperation) Name() string { return op.lro.Name() } // EnableServiceOperation manages a long-running operation from EnableService. type EnableServiceOperation struct { lro *longrunning.Operation } // EnableServiceOperation returns a new EnableServiceOperation from a given name. // The name must be that of a previously created EnableServiceOperation, possibly from a different process. func (c *serviceManagerGRPCClient) EnableServiceOperation(name string) *EnableServiceOperation { return &EnableServiceOperation{ lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), } } // Wait blocks until the long-running operation is completed, returning the response and any errors encountered. // // See documentation of Poll for error-handling information. func (op *EnableServiceOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*servicemanagementpb.EnableServiceResponse, error) { var resp servicemanagementpb.EnableServiceResponse if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { return nil, err } return &resp, nil } // Poll fetches the latest state of the long-running operation. // // Poll also fetches the latest metadata, which can be retrieved by Metadata. // // If Poll fails, the error is returned and op is unmodified. If Poll succeeds and // the operation has completed with failure, the error is returned and op.Done will return true. // If Poll succeeds and the operation has completed successfully, // op.Done will return true, and the response of the operation is returned. // If Poll succeeds and the operation has not completed, the returned response and error are both nil. func (op *EnableServiceOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*servicemanagementpb.EnableServiceResponse, error) { var resp servicemanagementpb.EnableServiceResponse if err := op.lro.Poll(ctx, &resp, opts...); err != nil { return nil, err } if !op.Done() { return nil, nil } return &resp, nil } // Metadata returns metadata associated with the long-running operation. // Metadata itself does not contact the server, but Poll does. // To get the latest metadata, call this method after a successful call to Poll. // If the metadata is not available, the returned metadata and error are both nil. func (op *EnableServiceOperation) Metadata() (*servicemanagementpb.OperationMetadata, error) { var meta servicemanagementpb.OperationMetadata if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { return nil, nil } else if err != nil { return nil, err } return &meta, nil } // Done reports whether the long-running operation has completed. func (op *EnableServiceOperation) Done() bool { return op.lro.Done() } // Name returns the name of the long-running operation. // The name is assigned by the server and is unique within the service from which the operation is created. func (op *EnableServiceOperation) Name() string { return op.lro.Name() } // SubmitConfigSourceOperation manages a long-running operation from SubmitConfigSource. type SubmitConfigSourceOperation struct { lro *longrunning.Operation } // SubmitConfigSourceOperation returns a new SubmitConfigSourceOperation from a given name. // The name must be that of a previously created SubmitConfigSourceOperation, possibly from a different process. func (c *serviceManagerGRPCClient) SubmitConfigSourceOperation(name string) *SubmitConfigSourceOperation { return &SubmitConfigSourceOperation{ lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), } } // Wait blocks until the long-running operation is completed, returning the response and any errors encountered. // // See documentation of Poll for error-handling information. func (op *SubmitConfigSourceOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*servicemanagementpb.SubmitConfigSourceResponse, error) { var resp servicemanagementpb.SubmitConfigSourceResponse if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { return nil, err } return &resp, nil } // Poll fetches the latest state of the long-running operation. // // Poll also fetches the latest metadata, which can be retrieved by Metadata. // // If Poll fails, the error is returned and op is unmodified. If Poll succeeds and // the operation has completed with failure, the error is returned and op.Done will return true. // If Poll succeeds and the operation has completed successfully, // op.Done will return true, and the response of the operation is returned. // If Poll succeeds and the operation has not completed, the returned response and error are both nil. func (op *SubmitConfigSourceOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*servicemanagementpb.SubmitConfigSourceResponse, error) { var resp servicemanagementpb.SubmitConfigSourceResponse if err := op.lro.Poll(ctx, &resp, opts...); err != nil { return nil, err } if !op.Done() { return nil, nil } return &resp, nil } // Metadata returns metadata associated with the long-running operation. // Metadata itself does not contact the server, but Poll does. // To get the latest metadata, call this method after a successful call to Poll. // If the metadata is not available, the returned metadata and error are both nil. func (op *SubmitConfigSourceOperation) Metadata() (*servicemanagementpb.OperationMetadata, error) { var meta servicemanagementpb.OperationMetadata if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { return nil, nil } else if err != nil { return nil, err } return &meta, nil } // Done reports whether the long-running operation has completed. func (op *SubmitConfigSourceOperation) Done() bool { return op.lro.Done() } // Name returns the name of the long-running operation. // The name is assigned by the server and is unique within the service from which the operation is created. func (op *SubmitConfigSourceOperation) Name() string { return op.lro.Name() } // UndeleteServiceOperation manages a long-running operation from UndeleteService. type UndeleteServiceOperation struct { lro *longrunning.Operation } // UndeleteServiceOperation returns a new UndeleteServiceOperation from a given name. // The name must be that of a previously created UndeleteServiceOperation, possibly from a different process. func (c *serviceManagerGRPCClient) UndeleteServiceOperation(name string) *UndeleteServiceOperation { return &UndeleteServiceOperation{ lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), } } // Wait blocks until the long-running operation is completed, returning the response and any errors encountered. // // See documentation of Poll for error-handling information. func (op *UndeleteServiceOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*servicemanagementpb.UndeleteServiceResponse, error) { var resp servicemanagementpb.UndeleteServiceResponse if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { return nil, err } return &resp, nil } // Poll fetches the latest state of the long-running operation. // // Poll also fetches the latest metadata, which can be retrieved by Metadata. // // If Poll fails, the error is returned and op is unmodified. If Poll succeeds and // the operation has completed with failure, the error is returned and op.Done will return true. // If Poll succeeds and the operation has completed successfully, // op.Done will return true, and the response of the operation is returned. // If Poll succeeds and the operation has not completed, the returned response and error are both nil. func (op *UndeleteServiceOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*servicemanagementpb.UndeleteServiceResponse, error) { var resp servicemanagementpb.UndeleteServiceResponse if err := op.lro.Poll(ctx, &resp, opts...); err != nil { return nil, err } if !op.Done() { return nil, nil } return &resp, nil } // Metadata returns metadata associated with the long-running operation. // Metadata itself does not contact the server, but Poll does. // To get the latest metadata, call this method after a successful call to Poll. // If the metadata is not available, the returned metadata and error are both nil. func (op *UndeleteServiceOperation) Metadata() (*servicemanagementpb.OperationMetadata, error) { var meta servicemanagementpb.OperationMetadata if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { return nil, nil } else if err != nil { return nil, err } return &meta, nil } // Done reports whether the long-running operation has completed. func (op *UndeleteServiceOperation) Done() bool { return op.lro.Done() } // Name returns the name of the long-running operation. // The name is assigned by the server and is unique within the service from which the operation is created. func (op *UndeleteServiceOperation) Name() string { return op.lro.Name() } // ManagedServiceIterator manages a stream of *servicemanagementpb.ManagedService. type ManagedServiceIterator struct { items []*servicemanagementpb.ManagedService pageInfo *iterator.PageInfo nextFunc func() error // Response is the raw response for the current page. // It must be cast to the RPC response type. // Calling Next() or InternalFetch() updates this value. Response interface{} // InternalFetch is for use by the Google Cloud Libraries only. // It is not part of the stable interface of this package. // // InternalFetch returns results from a single call to the underlying RPC. // The number of results is no greater than pageSize. // If there are no more results, nextPageToken is empty and err is nil. InternalFetch func(pageSize int, pageToken string) (results []*servicemanagementpb.ManagedService, nextPageToken string, err error) } // PageInfo supports pagination. See the google.golang.org/api/iterator package for details. func (it *ManagedServiceIterator) PageInfo() *iterator.PageInfo { return it.pageInfo } // Next returns the next result. Its second return value is iterator.Done if there are no more // results. Once Next returns Done, all subsequent calls will return Done. func (it *ManagedServiceIterator) Next() (*servicemanagementpb.ManagedService, error) { var item *servicemanagementpb.ManagedService if err := it.nextFunc(); err != nil { return item, err } item = it.items[0] it.items = it.items[1:] return item, nil } func (it *ManagedServiceIterator) bufLen() int { return len(it.items) } func (it *ManagedServiceIterator) takeBuf() interface{} { b := it.items it.items = nil return b } // RolloutIterator manages a stream of *servicemanagementpb.Rollout. type RolloutIterator struct { items []*servicemanagementpb.Rollout pageInfo *iterator.PageInfo nextFunc func() error // Response is the raw response for the current page. // It must be cast to the RPC response type. // Calling Next() or InternalFetch() updates this value. Response interface{} // InternalFetch is for use by the Google Cloud Libraries only. // It is not part of the stable interface of this package. // // InternalFetch returns results from a single call to the underlying RPC. // The number of results is no greater than pageSize. // If there are no more results, nextPageToken is empty and err is nil. InternalFetch func(pageSize int, pageToken string) (results []*servicemanagementpb.Rollout, nextPageToken string, err error) } // PageInfo supports pagination. See the google.golang.org/api/iterator package for details. func (it *RolloutIterator) PageInfo() *iterator.PageInfo { return it.pageInfo } // Next returns the next result. Its second return value is iterator.Done if there are no more // results. Once Next returns Done, all subsequent calls will return Done. func (it *RolloutIterator) Next() (*servicemanagementpb.Rollout, error) { var item *servicemanagementpb.Rollout if err := it.nextFunc(); err != nil { return item, err } item = it.items[0] it.items = it.items[1:] return item, nil } func (it *RolloutIterator) bufLen() int { return len(it.items) } func (it *RolloutIterator) takeBuf() interface{} { b := it.items it.items = nil return b } // ServiceIterator manages a stream of *serviceconfigpb.Service. type ServiceIterator struct { items []*serviceconfigpb.Service pageInfo *iterator.PageInfo nextFunc func() error // Response is the raw response for the current page. // It must be cast to the RPC response type. // Calling Next() or InternalFetch() updates this value. Response interface{} // InternalFetch is for use by the Google Cloud Libraries only. // It is not part of the stable interface of this package. // // InternalFetch returns results from a single call to the underlying RPC. // The number of results is no greater than pageSize. // If there are no more results, nextPageToken is empty and err is nil. InternalFetch func(pageSize int, pageToken string) (results []*serviceconfigpb.Service, nextPageToken string, err error) } // PageInfo supports pagination. See the google.golang.org/api/iterator package for details. func (it *ServiceIterator) PageInfo() *iterator.PageInfo { return it.pageInfo } // Next returns the next result. Its second return value is iterator.Done if there are no more // results. Once Next returns Done, all subsequent calls will return Done. func (it *ServiceIterator) Next() (*serviceconfigpb.Service, error) { var item *serviceconfigpb.Service if err := it.nextFunc(); err != nil { return item, err } item = it.items[0] it.items = it.items[1:] return item, nil } func (it *ServiceIterator) bufLen() int { return len(it.items) } func (it *ServiceIterator) takeBuf() interface{} { b := it.items it.items = nil return b }