// Copyright 2021 Google LLC. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated file. DO NOT EDIT. // Package servicecontrol provides access to the Service Control API. // // For product documentation, see: https://cloud.google.com/service-control/ // // Creating a client // // Usage example: // // import "google.golang.org/api/servicecontrol/v2" // ... // ctx := context.Background() // servicecontrolService, err := servicecontrol.NewService(ctx) // // In this example, Google Application Default Credentials are used for authentication. // // For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials. // // Other authentication options // // By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes: // // servicecontrolService, err := servicecontrol.NewService(ctx, option.WithScopes(servicecontrol.ServicecontrolScope)) // // To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey: // // servicecontrolService, err := servicecontrol.NewService(ctx, option.WithAPIKey("AIza...")) // // To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource: // // config := &oauth2.Config{...} // // ... // token, err := config.Exchange(ctx, ...) // servicecontrolService, err := servicecontrol.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token))) // // See https://godoc.org/google.golang.org/api/option/ for details on options. package servicecontrol // import "google.golang.org/api/servicecontrol/v2" import ( "bytes" "context" "encoding/json" "errors" "fmt" "io" "net/http" "net/url" "strconv" "strings" googleapi "google.golang.org/api/googleapi" gensupport "google.golang.org/api/internal/gensupport" option "google.golang.org/api/option" internaloption "google.golang.org/api/option/internaloption" htransport "google.golang.org/api/transport/http" ) // Always reference these packages, just in case the auto-generated code // below doesn't. var _ = bytes.NewBuffer var _ = strconv.Itoa var _ = fmt.Sprintf var _ = json.NewDecoder var _ = io.Copy var _ = url.Parse var _ = gensupport.MarshalJSON var _ = googleapi.Version var _ = errors.New var _ = strings.Replace var _ = context.Canceled var _ = internaloption.WithDefaultEndpoint const apiId = "servicecontrol:v2" const apiName = "servicecontrol" const apiVersion = "v2" const basePath = "https://servicecontrol.googleapis.com/" const mtlsBasePath = "https://servicecontrol.mtls.googleapis.com/" // OAuth2 scopes used by this API. const ( // See, edit, configure, and delete your Google Cloud Platform data CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform" // Manage your Google Service Control data ServicecontrolScope = "https://www.googleapis.com/auth/servicecontrol" ) // NewService creates a new Service. func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) { scopesOption := option.WithScopes( "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/servicecontrol", ) // NOTE: prepend, so we don't override user-specified scopes. opts = append([]option.ClientOption{scopesOption}, opts...) opts = append(opts, internaloption.WithDefaultEndpoint(basePath)) opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath)) client, endpoint, err := htransport.NewClient(ctx, opts...) if err != nil { return nil, err } s, err := New(client) if err != nil { return nil, err } if endpoint != "" { s.BasePath = endpoint } return s, nil } // New creates a new Service. It uses the provided http.Client for requests. // // Deprecated: please use NewService instead. // To provide a custom HTTP client, use option.WithHTTPClient. // If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead. func New(client *http.Client) (*Service, error) { if client == nil { return nil, errors.New("client is nil") } s := &Service{client: client, BasePath: basePath} s.Services = NewServicesService(s) return s, nil } type Service struct { client *http.Client BasePath string // API endpoint base URL UserAgent string // optional additional User-Agent fragment Services *ServicesService } func (s *Service) userAgent() string { if s.UserAgent == "" { return googleapi.UserAgent } return googleapi.UserAgent + " " + s.UserAgent } func NewServicesService(s *Service) *ServicesService { rs := &ServicesService{s: s} return rs } type ServicesService struct { s *Service } // Api: This message defines attributes associated with API operations, // such as a network API request. The terminology is based on the // conventions used by Google APIs, Istio, and OpenAPI. type Api struct { // Operation: The API operation name. For gRPC requests, it is the fully // qualified API method name, such as // "google.pubsub.v1.Publisher.Publish". For OpenAPI requests, it is the // `operationId`, such as "getPet". Operation string `json:"operation,omitempty"` // Protocol: The API protocol used for sending the request, such as // "http", "https", "grpc", or "internal". Protocol string `json:"protocol,omitempty"` // Service: The API service name. It is a logical identifier for a // networked API, such as "pubsub.googleapis.com". The naming syntax // depends on the API management system being used for handling the // request. Service string `json:"service,omitempty"` // Version: The API version associated with the API operation above, // such as "v1" or "v1alpha1". Version string `json:"version,omitempty"` // ForceSendFields is a list of field names (e.g. "Operation") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Operation") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Api) MarshalJSON() ([]byte, error) { type NoMethod Api raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // AttributeContext: This message defines the standard attribute // vocabulary for Google APIs. An attribute is a piece of metadata that // describes an activity on a network service. For example, the size of // an HTTP request, or the status code of an HTTP response. Each // attribute has a type and a name, which is logically defined as a // proto message field in `AttributeContext`. The field type becomes the // attribute type, and the field path becomes the attribute name. For // example, the attribute `source.ip` maps to field // `AttributeContext.source.ip`. This message definition is guaranteed // not to have any wire breaking change. So you can use it directly for // passing attributes across different systems. NOTE: Different system // may generate different subset of attributes. Please verify the system // specification before relying on an attribute generated a system. type AttributeContext struct { // Api: Represents an API operation that is involved to a network // activity. Api *Api `json:"api,omitempty"` // Destination: The destination of a network activity, such as accepting // a TCP connection. In a multi hop network activity, the destination // represents the receiver of the last hop. Destination *Peer `json:"destination,omitempty"` // Extensions: Supports extensions for advanced use cases, such as logs // and metrics. Extensions []googleapi.RawMessage `json:"extensions,omitempty"` // Origin: The origin of a network activity. In a multi hop network // activity, the origin represents the sender of the first hop. For the // first hop, the `source` and the `origin` must have the same content. Origin *Peer `json:"origin,omitempty"` // Request: Represents a network request, such as an HTTP request. Request *Request `json:"request,omitempty"` // Resource: Represents a target resource that is involved with a // network activity. If multiple resources are involved with an // activity, this must be the primary one. Resource *Resource `json:"resource,omitempty"` // Response: Represents a network response, such as an HTTP response. Response *Response `json:"response,omitempty"` // Source: The source of a network activity, such as starting a TCP // connection. In a multi hop network activity, the source represents // the sender of the last hop. Source *Peer `json:"source,omitempty"` // ForceSendFields is a list of field names (e.g. "Api") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Api") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *AttributeContext) MarshalJSON() ([]byte, error) { type NoMethod AttributeContext raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // AuditLog: Common audit log format for Google Cloud Platform API // operations. type AuditLog struct { // AuthenticationInfo: Authentication information. AuthenticationInfo *AuthenticationInfo `json:"authenticationInfo,omitempty"` // AuthorizationInfo: Authorization information. If there are multiple // resources or permissions involved, then there is one // AuthorizationInfo element for each {resource, permission} tuple. AuthorizationInfo []*AuthorizationInfo `json:"authorizationInfo,omitempty"` // Metadata: Other service-specific data about the request, response, // and other information associated with the current audited event. Metadata googleapi.RawMessage `json:"metadata,omitempty"` // MethodName: The name of the service method or operation. For API // calls, this should be the name of the API method. For example, // "google.cloud.bigquery.v2.TableService.InsertTable" // "google.logging.v2.ConfigServiceV2.CreateSink" MethodName string `json:"methodName,omitempty"` // NumResponseItems: The number of items returned from a List or Query // API method, if applicable. NumResponseItems int64 `json:"numResponseItems,omitempty,string"` // Request: The operation request. This may not include all request // parameters, such as those that are too large, privacy-sensitive, or // duplicated elsewhere in the log record. It should never include // user-generated data, such as file contents. When the JSON object // represented here has a proto equivalent, the proto name will be // indicated in the `@type` property. Request googleapi.RawMessage `json:"request,omitempty"` // RequestMetadata: Metadata about the operation. RequestMetadata *RequestMetadata `json:"requestMetadata,omitempty"` // ResourceLocation: The resource location information. ResourceLocation *ResourceLocation `json:"resourceLocation,omitempty"` // ResourceName: The resource or collection that is the target of the // operation. The name is a scheme-less URI, not including the API // service name. For example: // "projects/PROJECT_ID/zones/us-central1-a/instances" // "projects/PROJECT_ID/datasets/DATASET_ID" ResourceName string `json:"resourceName,omitempty"` // ResourceOriginalState: The resource's original state before mutation. // Present only for operations which have successfully modified the // targeted resource(s). In general, this field should contain all // changed fields, except those that are already been included in // `request`, `response`, `metadata` or `service_data` fields. When the // JSON object represented here has a proto equivalent, the proto name // will be indicated in the `@type` property. ResourceOriginalState googleapi.RawMessage `json:"resourceOriginalState,omitempty"` // Response: The operation response. This may not include all response // elements, such as those that are too large, privacy-sensitive, or // duplicated elsewhere in the log record. It should never include // user-generated data, such as file contents. When the JSON object // represented here has a proto equivalent, the proto name will be // indicated in the `@type` property. Response googleapi.RawMessage `json:"response,omitempty"` // ServiceData: Deprecated. Use the `metadata` field instead. Other // service-specific data about the request, response, and other // activities. ServiceData googleapi.RawMessage `json:"serviceData,omitempty"` // ServiceName: The name of the API service performing the operation. // For example, "compute.googleapis.com". ServiceName string `json:"serviceName,omitempty"` // Status: The status of the overall operation. Status *Status `json:"status,omitempty"` // ForceSendFields is a list of field names (e.g. "AuthenticationInfo") // to unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AuthenticationInfo") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` } func (s *AuditLog) MarshalJSON() ([]byte, error) { type NoMethod AuditLog raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Auth: This message defines request authentication attributes. // Terminology is based on the JSON Web Token (JWT) standard, but the // terms also correlate to concepts in other standards. type Auth struct { // AccessLevels: A list of access level resource names that allow // resources to be accessed by authenticated requester. It is part of // Secure GCP processing for the incoming request. An access level // string has the format: // "//{api_service_name}/accessPolicies/{policy_id}/accessLevels/{short_n // ame}" Example: // "//accesscontextmanager.googleapis.com/accessPolicies/MY_POLICY_ID/acc // essLevels/MY_LEVEL" AccessLevels []string `json:"accessLevels,omitempty"` // Audiences: The intended audience(s) for this authentication // information. Reflects the audience (`aud`) claim within a JWT. The // audience value(s) depends on the `issuer`, but typically include one // or more of the following pieces of information: * The services // intended to receive the credential. For example, // ["https://pubsub.googleapis.com/", // "https://storage.googleapis.com/"]. * A set of service-based scopes. // For example, ["https://www.googleapis.com/auth/cloud-platform"]. * // The client id of an app, such as the Firebase project id for JWTs // from Firebase Auth. Consult the documentation for the credential // issuer to determine the information provided. Audiences []string `json:"audiences,omitempty"` // Claims: Structured claims presented with the credential. JWTs include // `{key: value}` pairs for standard and private claims. The following // is a subset of the standard required and optional claims that would // typically be presented for a Google-based JWT: {'iss': // 'accounts.google.com', 'sub': '113289723416554971153', 'aud': // ['123456789012', 'pubsub.googleapis.com'], 'azp': // '123456789012.apps.googleusercontent.com', 'email': // 'jsmith@example.com', 'iat': 1353601026, 'exp': 1353604926} SAML // assertions are similarly specified, but with an identity provider // dependent structure. Claims googleapi.RawMessage `json:"claims,omitempty"` // Presenter: The authorized presenter of the credential. Reflects the // optional Authorized Presenter (`azp`) claim within a JWT or the OAuth // client id. For example, a Google Cloud Platform client id looks as // follows: "123456789012.apps.googleusercontent.com". Presenter string `json:"presenter,omitempty"` // Principal: The authenticated principal. Reflects the issuer (`iss`) // and subject (`sub`) claims within a JWT. The issuer and subject // should be `/` delimited, with `/` percent-encoded within the subject // fragment. For Google accounts, the principal format is: // "https://accounts.google.com/{id}" Principal string `json:"principal,omitempty"` // ForceSendFields is a list of field names (e.g. "AccessLevels") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AccessLevels") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Auth) MarshalJSON() ([]byte, error) { type NoMethod Auth raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // AuthenticationInfo: Authentication information for the operation. type AuthenticationInfo struct { // AuthoritySelector: The authority selector specified by the requestor, // if any. It is not guaranteed that the principal was allowed to use // this authority. AuthoritySelector string `json:"authoritySelector,omitempty"` // PrincipalEmail: The email address of the authenticated user (or // service account on behalf of third party principal) making the // request. For third party identity callers, the `principal_subject` // field is populated instead of this field. For privacy reasons, the // principal email address is sometimes redacted. For more information, // see Caller identities in audit logs // (https://cloud.google.com/logging/docs/audit#user-id). PrincipalEmail string `json:"principalEmail,omitempty"` // PrincipalSubject: String representation of identity of requesting // party. Populated for both first and third party identities. PrincipalSubject string `json:"principalSubject,omitempty"` // ServiceAccountDelegationInfo: Identity delegation history of an // authenticated service account that makes the request. It contains // information on the real authorities that try to access GCP resources // by delegating on a service account. When multiple authorities // present, they are guaranteed to be sorted based on the original // ordering of the identity delegation events. ServiceAccountDelegationInfo []*ServiceAccountDelegationInfo `json:"serviceAccountDelegationInfo,omitempty"` // ServiceAccountKeyName: The name of the service account key used to // create or exchange credentials for authenticating the service account // making the request. This is a scheme-less URI full resource name. For // example: // "//iam.googleapis.com/projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/ // keys/{key}" ServiceAccountKeyName string `json:"serviceAccountKeyName,omitempty"` // ThirdPartyPrincipal: The third party identification (if any) of the // authenticated user making the request. When the JSON object // represented here has a proto equivalent, the proto name will be // indicated in the `@type` property. ThirdPartyPrincipal googleapi.RawMessage `json:"thirdPartyPrincipal,omitempty"` // ForceSendFields is a list of field names (e.g. "AuthoritySelector") // to unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AuthoritySelector") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` } func (s *AuthenticationInfo) MarshalJSON() ([]byte, error) { type NoMethod AuthenticationInfo raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // AuthorizationInfo: Authorization information for the operation. type AuthorizationInfo struct { // Granted: Whether or not authorization for `resource` and `permission` // was granted. Granted bool `json:"granted,omitempty"` // Permission: The required IAM permission. Permission string `json:"permission,omitempty"` // Resource: The resource being accessed, as a REST-style or cloud // resource string. For example: // bigquery.googleapis.com/projects/PROJECTID/datasets/DATASETID or // projects/PROJECTID/datasets/DATASETID Resource string `json:"resource,omitempty"` // ResourceAttributes: Resource attributes used in IAM condition // evaluation. This field contains resource attributes like resource // type and resource name. To get the whole view of the attributes used // in IAM condition evaluation, the user must also look into // `AuditLog.request_metadata.request_attributes`. ResourceAttributes *Resource `json:"resourceAttributes,omitempty"` // ForceSendFields is a list of field names (e.g. "Granted") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Granted") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *AuthorizationInfo) MarshalJSON() ([]byte, error) { type NoMethod AuthorizationInfo raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // CheckRequest: Request message for the Check method. type CheckRequest struct { // Attributes: Describes attributes about the operation being executed // by the service. Attributes *AttributeContext `json:"attributes,omitempty"` // Flags: Optional. Contains a comma-separated list of flags. Flags string `json:"flags,omitempty"` // Resources: Describes the resources and the policies applied to each // resource. Resources []*ResourceInfo `json:"resources,omitempty"` // ServiceConfigId: Specifies the version of the service configuration // that should be used to process the request. Must not be empty. Set // this field to 'latest' to specify using the latest configuration. ServiceConfigId string `json:"serviceConfigId,omitempty"` // ForceSendFields is a list of field names (e.g. "Attributes") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Attributes") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *CheckRequest) MarshalJSON() ([]byte, error) { type NoMethod CheckRequest raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // CheckResponse: Response message for the Check method. type CheckResponse struct { // Headers: Returns a set of request contexts generated from the // `CheckRequest`. Headers map[string]string `json:"headers,omitempty"` // Status: Operation is allowed when this field is not set. Any non-'OK' // status indicates a denial; google.rpc.Status.details () would contain // additional details about the denial. Status *Status `json:"status,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Headers") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Headers") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *CheckResponse) MarshalJSON() ([]byte, error) { type NoMethod CheckResponse raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // FirstPartyPrincipal: First party identity principal. type FirstPartyPrincipal struct { // PrincipalEmail: The email address of a Google account. . PrincipalEmail string `json:"principalEmail,omitempty"` // ServiceMetadata: Metadata about the service that uses the service // account. . ServiceMetadata googleapi.RawMessage `json:"serviceMetadata,omitempty"` // ForceSendFields is a list of field names (e.g. "PrincipalEmail") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "PrincipalEmail") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` } func (s *FirstPartyPrincipal) MarshalJSON() ([]byte, error) { type NoMethod FirstPartyPrincipal raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Peer: This message defines attributes for a node that handles a // network request. The node can be either a service or an application // that sends, forwards, or receives the request. Service peers should // fill in `principal` and `labels` as appropriate. type Peer struct { // Ip: The IP address of the peer. Ip string `json:"ip,omitempty"` // Labels: The labels associated with the peer. Labels map[string]string `json:"labels,omitempty"` // Port: The network port of the peer. Port int64 `json:"port,omitempty,string"` // Principal: The identity of this peer. Similar to // `Request.auth.principal`, but relative to the peer instead of the // request. For example, the idenity associated with a load balancer // that forwared the request. Principal string `json:"principal,omitempty"` // RegionCode: The CLDR country/region code associated with the above IP // address. If the IP address is private, the `region_code` should // reflect the physical location where this peer is running. RegionCode string `json:"regionCode,omitempty"` // ForceSendFields is a list of field names (e.g. "Ip") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Ip") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Peer) MarshalJSON() ([]byte, error) { type NoMethod Peer raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // ReportRequest: Request message for the Report method. type ReportRequest struct { // Operations: Describes the list of operations to be reported. Each // operation is represented as an AttributeContext, and contains all // attributes around an API access. Operations []*AttributeContext `json:"operations,omitempty"` // ServiceConfigId: Specifies the version of the service configuration // that should be used to process the request. Must not be empty. Set // this field to 'latest' to specify using the latest configuration. ServiceConfigId string `json:"serviceConfigId,omitempty"` // ForceSendFields is a list of field names (e.g. "Operations") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Operations") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *ReportRequest) MarshalJSON() ([]byte, error) { type NoMethod ReportRequest raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // ReportResponse: Response message for the Report method. If the // request contains any invalid data, the server returns an RPC error. type ReportResponse struct { // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` } // Request: This message defines attributes for an HTTP request. If the // actual request is not an HTTP request, the runtime system should try // to map the actual request to an equivalent HTTP request. type Request struct { // Auth: The request authentication. May be absent for unauthenticated // requests. Derived from the HTTP request `Authorization` header or // equivalent. Auth *Auth `json:"auth,omitempty"` // Headers: The HTTP request headers. If multiple headers share the same // key, they must be merged according to the HTTP spec. All header keys // must be lowercased, because HTTP header keys are case-insensitive. Headers map[string]string `json:"headers,omitempty"` // Host: The HTTP request `Host` header value. Host string `json:"host,omitempty"` // Id: The unique ID for a request, which can be propagated to // downstream systems. The ID should have low probability of collision // within a single day for a specific service. Id string `json:"id,omitempty"` // Method: The HTTP request method, such as `GET`, `POST`. Method string `json:"method,omitempty"` // Path: The HTTP URL path, excluding the query parameters. Path string `json:"path,omitempty"` // Protocol: The network protocol used with the request, such as // "http/1.1", "spdy/3", "h2", "h2c", "webrtc", "tcp", "udp", "quic". // See // https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids // for details. Protocol string `json:"protocol,omitempty"` // Query: The HTTP URL query in the format of // `name1=value1&name2=value2`, as it appears in the first line of the // HTTP request. No decoding is performed. Query string `json:"query,omitempty"` // Reason: A special parameter for request reason. It is used by // security systems to associate auditing information with a request. Reason string `json:"reason,omitempty"` // Scheme: The HTTP URL scheme, such as `http` and `https`. Scheme string `json:"scheme,omitempty"` // Size: The HTTP request size in bytes. If unknown, it must be -1. Size int64 `json:"size,omitempty,string"` // Time: The timestamp when the `destination` service receives the last // byte of the request. Time string `json:"time,omitempty"` // ForceSendFields is a list of field names (e.g. "Auth") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Auth") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Request) MarshalJSON() ([]byte, error) { type NoMethod Request raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // RequestMetadata: Metadata about the request. type RequestMetadata struct { // CallerIp: The IP address of the caller. For caller from internet, // this will be public IPv4 or IPv6 address. For caller from a Compute // Engine VM with external IP address, this will be the VM's external IP // address. For caller from a Compute Engine VM without external IP // address, if the VM is in the same organization (or project) as the // accessed resource, `caller_ip` will be the VM's internal IPv4 // address, otherwise the `caller_ip` will be redacted to // "gce-internal-ip". See https://cloud.google.com/compute/docs/vpc/ for // more information. CallerIp string `json:"callerIp,omitempty"` // CallerNetwork: The network of the caller. Set only if the network // host project is part of the same GCP organization (or project) as the // accessed resource. See https://cloud.google.com/compute/docs/vpc/ for // more information. This is a scheme-less URI full resource name. For // example: // "//compute.googleapis.com/projects/PROJECT_ID/global/networks/NETWORK_ // ID" CallerNetwork string `json:"callerNetwork,omitempty"` // CallerSuppliedUserAgent: The user agent of the caller. This // information is not authenticated and should be treated accordingly. // For example: + `google-api-python-client/1.4.0`: The request was made // by the Google API client for Python. + `Cloud SDK Command Line Tool // apitools-client/1.0 gcloud/0.9.62`: The request was made by the // Google Cloud SDK CLI (gcloud). + `AppEngine-Google; // (+http://code.google.com/appengine; appid: s~my-project`: The request // was made from the `my-project` App Engine app. NOLINT CallerSuppliedUserAgent string `json:"callerSuppliedUserAgent,omitempty"` // DestinationAttributes: The destination of a network activity, such as // accepting a TCP connection. In a multi hop network activity, the // destination represents the receiver of the last hop. Only two fields // are used in this message, Peer.port and Peer.ip. These fields are // optionally populated by those services utilizing the IAM condition // feature. DestinationAttributes *Peer `json:"destinationAttributes,omitempty"` // RequestAttributes: Request attributes used in IAM condition // evaluation. This field contains request attributes like request time // and access levels associated with the request. To get the whole view // of the attributes used in IAM condition evaluation, the user must // also look into `AuditLog.authentication_info.resource_attributes`. RequestAttributes *Request `json:"requestAttributes,omitempty"` // ForceSendFields is a list of field names (e.g. "CallerIp") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "CallerIp") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *RequestMetadata) MarshalJSON() ([]byte, error) { type NoMethod RequestMetadata raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Resource: This message defines core attributes for a resource. A // resource is an addressable (named) entity provided by the destination // service. For example, a file stored on a network storage service. type Resource struct { // Annotations: Annotations is an unstructured key-value map stored with // a resource that may be set by external tools to store and retrieve // arbitrary metadata. They are not queryable and should be preserved // when modifying objects. More info: // https://kubernetes.io/docs/user-guide/annotations Annotations map[string]string `json:"annotations,omitempty"` // CreateTime: Output only. The timestamp when the resource was created. // This may be either the time creation was initiated or when it was // completed. CreateTime string `json:"createTime,omitempty"` // DeleteTime: Output only. The timestamp when the resource was deleted. // If the resource is not deleted, this must be empty. DeleteTime string `json:"deleteTime,omitempty"` // DisplayName: Mutable. The display name set by clients. Must be <= 63 // characters. DisplayName string `json:"displayName,omitempty"` // Etag: Output only. An opaque value that uniquely identifies a version // or generation of a resource. It can be used to confirm that the // client and server agree on the ordering of a resource being written. Etag string `json:"etag,omitempty"` // Labels: The labels or tags on the resource, such as AWS resource tags // and Kubernetes resource labels. Labels map[string]string `json:"labels,omitempty"` // Location: Immutable. The location of the resource. The location // encoding is specific to the service provider, and new encoding may be // introduced as the service evolves. For Google Cloud products, the // encoding is what is used by Google Cloud APIs, such as `us-east1`, // `aws-us-east-1`, and `azure-eastus2`. The semantics of `location` is // identical to the `cloud.googleapis.com/location` label used by some // Google Cloud APIs. Location string `json:"location,omitempty"` // Name: The stable identifier (name) of a resource on the `service`. A // resource can be logically identified as // "//{resource.service}/{resource.name}". The differences between a // resource name and a URI are: * Resource name is a logical identifier, // independent of network protocol and API version. For example, // `//pubsub.googleapis.com/projects/123/topics/news-feed`. * URI often // includes protocol and version information, so it can be used directly // by applications. For example, // `https://pubsub.googleapis.com/v1/projects/123/topics/news-feed`. See // https://cloud.google.com/apis/design/resource_names for details. Name string `json:"name,omitempty"` // Service: The name of the service that this resource belongs to, such // as `pubsub.googleapis.com`. The service may be different from the DNS // hostname that actually serves the request. Service string `json:"service,omitempty"` // Type: The type of the resource. The syntax is platform-specific // because different platforms define their resources differently. For // Google APIs, the type format must be "{service}/{kind}". Type string `json:"type,omitempty"` // Uid: The unique identifier of the resource. UID is unique in the time // and space for this resource within the scope of the service. It is // typically generated by the server on successful creation of a // resource and must not be changed. UID is used to uniquely identify // resources with resource name reuses. This should be a UUID4. Uid string `json:"uid,omitempty"` // UpdateTime: Output only. The timestamp when the resource was last // updated. Any change to the resource made by users must refresh this // value. Changes to a resource made by the service should refresh this // value. UpdateTime string `json:"updateTime,omitempty"` // ForceSendFields is a list of field names (e.g. "Annotations") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Annotations") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Resource) MarshalJSON() ([]byte, error) { type NoMethod Resource raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // ResourceInfo: Describes a resource referenced in the request. type ResourceInfo struct { // Container: Optional. The identifier of the container of this // resource. For Google Cloud APIs, the resource container must be one // of the following formats: - `projects/` - `folders/` - // `organizations/` For the policy enforcement on the container level // (VPCSC and Location Policy check), this field takes precedence on the // container extracted from name when presents. Container string `json:"container,omitempty"` // Location: Optional. The location of the resource. The value must be a // valid zone, region or multiregion. For example: "europe-west4" or // "northamerica-northeast1-a" Location string `json:"location,omitempty"` // Name: The name of the resource referenced in the request. Name string `json:"name,omitempty"` // Permission: The resource permission needed for this request. The // format must be "{service}/{plural}.{verb}". Permission string `json:"permission,omitempty"` // Type: The resource type in the format of "{service}/{kind}". Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "Container") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Container") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *ResourceInfo) MarshalJSON() ([]byte, error) { type NoMethod ResourceInfo raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // ResourceLocation: Location information about a resource. type ResourceLocation struct { // CurrentLocations: The locations of a resource after the execution of // the operation. Requests to create or delete a location based resource // must populate the 'current_locations' field and not the // 'original_locations' field. For example: "europe-west1-a" "us-east1" // "nam3" CurrentLocations []string `json:"currentLocations,omitempty"` // OriginalLocations: The locations of a resource prior to the execution // of the operation. Requests that mutate the resource's location must // populate both the 'original_locations' as well as the // 'current_locations' fields. For example: "europe-west1-a" "us-east1" // "nam3" OriginalLocations []string `json:"originalLocations,omitempty"` // ForceSendFields is a list of field names (e.g. "CurrentLocations") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "CurrentLocations") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` } func (s *ResourceLocation) MarshalJSON() ([]byte, error) { type NoMethod ResourceLocation raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Response: This message defines attributes for a typical network // response. It generally models semantics of an HTTP response. type Response struct { // BackendLatency: The amount of time it takes the backend service to // fully respond to a request. Measured from when the destination // service starts to send the request to the backend until when the // destination service receives the complete response from the backend. BackendLatency string `json:"backendLatency,omitempty"` // Code: The HTTP response status code, such as `200` and `404`. Code int64 `json:"code,omitempty,string"` // Headers: The HTTP response headers. If multiple headers share the // same key, they must be merged according to HTTP spec. All header keys // must be lowercased, because HTTP header keys are case-insensitive. Headers map[string]string `json:"headers,omitempty"` // Size: The HTTP response size in bytes. If unknown, it must be -1. Size int64 `json:"size,omitempty,string"` // Time: The timestamp when the `destination` service sends the last // byte of the response. Time string `json:"time,omitempty"` // ForceSendFields is a list of field names (e.g. "BackendLatency") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "BackendLatency") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` } func (s *Response) MarshalJSON() ([]byte, error) { type NoMethod Response raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // ServiceAccountDelegationInfo: Identity delegation history of an // authenticated service account. type ServiceAccountDelegationInfo struct { // FirstPartyPrincipal: First party (Google) identity as the real // authority. FirstPartyPrincipal *FirstPartyPrincipal `json:"firstPartyPrincipal,omitempty"` // PrincipalSubject: A string representing the principal_subject // associated with the identity. For most identities, the format will be // `principal://iam.googleapis.com/{identity pool // name}/subject/{subject)` except for some GKE identities // (GKE_WORKLOAD, FREEFORM, GKE_HUB_WORKLOAD) that are still in the // legacy format `serviceAccount:{identity pool name}[{subject}]` PrincipalSubject string `json:"principalSubject,omitempty"` // ThirdPartyPrincipal: Third party identity as the real authority. ThirdPartyPrincipal *ThirdPartyPrincipal `json:"thirdPartyPrincipal,omitempty"` // ForceSendFields is a list of field names (e.g. "FirstPartyPrincipal") // to unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "FirstPartyPrincipal") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` } func (s *ServiceAccountDelegationInfo) MarshalJSON() ([]byte, error) { type NoMethod ServiceAccountDelegationInfo raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // SpanContext: The context of a span. This is attached to an Exemplar // in Distribution values during aggregation. It contains the name of a // span with format: // projects/[PROJECT_ID_OR_NUMBER]/traces/[TRACE_ID]/spans/[SPAN_ID] type SpanContext struct { // SpanName: The resource name of the span. The format is: // projects/[PROJECT_ID_OR_NUMBER]/traces/[TRACE_ID]/spans/[SPAN_ID] // `[TRACE_ID]` is a unique identifier for a trace within a project; it // is a 32-character hexadecimal encoding of a 16-byte array. // `[SPAN_ID]` is a unique identifier for a span within a trace; it is a // 16-character hexadecimal encoding of an 8-byte array. SpanName string `json:"spanName,omitempty"` // ForceSendFields is a list of field names (e.g. "SpanName") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "SpanName") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *SpanContext) MarshalJSON() ([]byte, error) { type NoMethod SpanContext raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Status: The `Status` type defines a logical error model that is // suitable for different programming environments, including REST APIs // and RPC APIs. It is used by gRPC (https://github.com/grpc). Each // `Status` message contains three pieces of data: error code, error // message, and error details. You can find out more about this error // model and how to work with it in the API Design Guide // (https://cloud.google.com/apis/design/errors). type Status struct { // Code: The status code, which should be an enum value of // google.rpc.Code. Code int64 `json:"code,omitempty"` // Details: A list of messages that carry the error details. There is a // common set of message types for APIs to use. Details []googleapi.RawMessage `json:"details,omitempty"` // Message: A developer-facing error message, which should be in // English. Any user-facing error message should be localized and sent // in the google.rpc.Status.details field, or localized by the client. Message string `json:"message,omitempty"` // ForceSendFields is a list of field names (e.g. "Code") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Code") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Status) MarshalJSON() ([]byte, error) { type NoMethod Status raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // ThirdPartyPrincipal: Third party identity principal. type ThirdPartyPrincipal struct { // ThirdPartyClaims: Metadata about third party identity. ThirdPartyClaims googleapi.RawMessage `json:"thirdPartyClaims,omitempty"` // ForceSendFields is a list of field names (e.g. "ThirdPartyClaims") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ThirdPartyClaims") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` } func (s *ThirdPartyPrincipal) MarshalJSON() ([]byte, error) { type NoMethod ThirdPartyPrincipal raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // method id "servicecontrol.services.check": type ServicesCheckCall struct { s *Service serviceName string checkrequest *CheckRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Check: Private Preview. This feature is only available for approved // services. This method provides admission control for services that // are integrated with Service Infrastructure (/service-infrastructure). // It checks whether an operation should be allowed based on the service // configuration and relevant policies. It must be called before the // operation is executed. For more information, see Admission Control // (/service-infrastructure/docs/admission-control). NOTE: The admission // control has an expected policy propagation delay of 60s. The caller // **must** not depend on the most recent policy changes. NOTE: The // admission control has a hard limit of 1 referenced resources per // call. If an operation refers to more than 1 resources, the caller // must call the Check method multiple times. This method requires the // `servicemanagement.services.check` permission on the specified // service. For more information, see Service Control API Access Control // (https://cloud.google.com/service-infrastructure/docs/service-control/access-control). // // - serviceName: The service name as specified in its service // configuration. For example, "pubsub.googleapis.com". See // google.api.Service // (https://cloud.google.com/service-management/reference/rpc/google.api#google.api.Service) // for the definition of a service name. func (r *ServicesService) Check(serviceName string, checkrequest *CheckRequest) *ServicesCheckCall { c := &ServicesCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.serviceName = serviceName c.checkrequest = checkrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *ServicesCheckCall) Fields(s ...googleapi.Field) *ServicesCheckCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *ServicesCheckCall) Context(ctx context.Context) *ServicesCheckCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *ServicesCheckCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ServicesCheckCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812") for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.checkrequest) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v2/services/{serviceName}:check") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "serviceName": c.serviceName, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "servicecontrol.services.check" call. // Exactly one of *CheckResponse or error will be non-nil. Any non-2xx // status code is an error. Response headers are in either // *CheckResponse.ServerResponse.Header or (if a response was returned // at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was // because http.StatusNotModified was returned. func (c *ServicesCheckCall) Do(opts ...googleapi.CallOption) (*CheckResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &CheckResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Private Preview. This feature is only available for approved services. This method provides admission control for services that are integrated with [Service Infrastructure](/service-infrastructure). It checks whether an operation should be allowed based on the service configuration and relevant policies. It must be called before the operation is executed. For more information, see [Admission Control](/service-infrastructure/docs/admission-control). NOTE: The admission control has an expected policy propagation delay of 60s. The caller **must** not depend on the most recent policy changes. NOTE: The admission control has a hard limit of 1 referenced resources per call. If an operation refers to more than 1 resources, the caller must call the Check method multiple times. This method requires the `servicemanagement.services.check` permission on the specified service. For more information, see [Service Control API Access Control](https://cloud.google.com/service-infrastructure/docs/service-control/access-control).", // "flatPath": "v2/services/{serviceName}:check", // "httpMethod": "POST", // "id": "servicecontrol.services.check", // "parameterOrder": [ // "serviceName" // ], // "parameters": { // "serviceName": { // "description": "The service name as specified in its service configuration. For example, `\"pubsub.googleapis.com\"`. See [google.api.Service](https://cloud.google.com/service-management/reference/rpc/google.api#google.api.Service) for the definition of a service name.", // "location": "path", // "required": true, // "type": "string" // } // }, // "path": "v2/services/{serviceName}:check", // "request": { // "$ref": "CheckRequest" // }, // "response": { // "$ref": "CheckResponse" // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-platform", // "https://www.googleapis.com/auth/servicecontrol" // ] // } } // method id "servicecontrol.services.report": type ServicesReportCall struct { s *Service serviceName string reportrequest *ReportRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Report: Private Preview. This feature is only available for approved // services. This method provides telemetry reporting for services that // are integrated with Service Infrastructure (/service-infrastructure). // It reports a list of operations that have occurred on a service. It // must be called after the operations have been executed. For more // information, see Telemetry Reporting // (/service-infrastructure/docs/telemetry-reporting). NOTE: The // telemetry reporting has a hard limit of 1000 operations and 1MB per // Report call. It is recommended to have no more than 100 operations // per call. This method requires the // `servicemanagement.services.report` permission on the specified // service. For more information, see Service Control API Access Control // (https://cloud.google.com/service-infrastructure/docs/service-control/access-control). // // - serviceName: The service name as specified in its service // configuration. For example, "pubsub.googleapis.com". See // google.api.Service // (https://cloud.google.com/service-management/reference/rpc/google.api#google.api.Service) // for the definition of a service name. func (r *ServicesService) Report(serviceName string, reportrequest *ReportRequest) *ServicesReportCall { c := &ServicesReportCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.serviceName = serviceName c.reportrequest = reportrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *ServicesReportCall) Fields(s ...googleapi.Field) *ServicesReportCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *ServicesReportCall) Context(ctx context.Context) *ServicesReportCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *ServicesReportCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ServicesReportCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812") for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.reportrequest) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v2/services/{serviceName}:report") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "serviceName": c.serviceName, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "servicecontrol.services.report" call. // Exactly one of *ReportResponse or error will be non-nil. Any non-2xx // status code is an error. Response headers are in either // *ReportResponse.ServerResponse.Header or (if a response was returned // at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was // because http.StatusNotModified was returned. func (c *ServicesReportCall) Do(opts ...googleapi.CallOption) (*ReportResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &ReportResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Private Preview. This feature is only available for approved services. This method provides telemetry reporting for services that are integrated with [Service Infrastructure](/service-infrastructure). It reports a list of operations that have occurred on a service. It must be called after the operations have been executed. For more information, see [Telemetry Reporting](/service-infrastructure/docs/telemetry-reporting). NOTE: The telemetry reporting has a hard limit of 1000 operations and 1MB per Report call. It is recommended to have no more than 100 operations per call. This method requires the `servicemanagement.services.report` permission on the specified service. For more information, see [Service Control API Access Control](https://cloud.google.com/service-infrastructure/docs/service-control/access-control).", // "flatPath": "v2/services/{serviceName}:report", // "httpMethod": "POST", // "id": "servicecontrol.services.report", // "parameterOrder": [ // "serviceName" // ], // "parameters": { // "serviceName": { // "description": "The service name as specified in its service configuration. For example, `\"pubsub.googleapis.com\"`. See [google.api.Service](https://cloud.google.com/service-management/reference/rpc/google.api#google.api.Service) for the definition of a service name.", // "location": "path", // "required": true, // "type": "string" // } // }, // "path": "v2/services/{serviceName}:report", // "request": { // "$ref": "ReportRequest" // }, // "response": { // "$ref": "ReportResponse" // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-platform", // "https://www.googleapis.com/auth/servicecontrol" // ] // } }