// Copyright 2022 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" internal "google.golang.org/api/internal" 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 data and see the // email address for your Google Account. 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 := internaloption.WithDefaultScopes( "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"` // PolicyViolationInfo: Indicates the policy violations for this // request. If the request is denied by the policy, violation // information will be logged here. PolicyViolationInfo *PolicyViolationInfo `json:"policyViolationInfo,omitempty"` // 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) } // OrgPolicyViolationInfo: Represents OrgPolicy Violation information. type OrgPolicyViolationInfo struct { // Payload: Optional. Resource payload that is currently in scope and is // subjected to orgpolicy conditions. This payload may be the subset of // the actual Resource that may come in the request. This payload should // not contain any core content. Payload googleapi.RawMessage `json:"payload,omitempty"` // ResourceTags: Optional. Tags referenced on the resource at the time // of evaluation. These also include the federated tags, if they are // supplied in the CheckOrgPolicy or CheckCustomConstraints Requests. // Optional field as of now. These tags are the Cloud tags that are // available on the resource during the policy evaluation and will be // available as part of the OrgPolicy check response for logging // purposes. ResourceTags map[string]string `json:"resourceTags,omitempty"` // ResourceType: Optional. Resource type that the orgpolicy is checked // against. Example: compute.googleapis.com/Instance, // store.googleapis.com/bucket ResourceType string `json:"resourceType,omitempty"` // ViolationInfo: Optional. Policy violations ViolationInfo []*ViolationInfo `json:"violationInfo,omitempty"` // ForceSendFields is a list of field names (e.g. "Payload") 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. "Payload") 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 *OrgPolicyViolationInfo) MarshalJSON() ([]byte, error) { type NoMethod OrgPolicyViolationInfo 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) } // PolicyViolationInfo: Information related to policy violations for // this request. type PolicyViolationInfo struct { // OrgPolicyViolationInfo: Indicates the orgpolicy violations for this // resource. OrgPolicyViolationInfo *OrgPolicyViolationInfo `json:"orgPolicyViolationInfo,omitempty"` // ForceSendFields is a list of field names (e.g. // "OrgPolicyViolationInfo") 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. "OrgPolicyViolationInfo") // 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 *PolicyViolationInfo) MarshalJSON() ([]byte, error) { type NoMethod PolicyViolationInfo 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}", such as // "pubsub.googleapis.com/Topic". 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) } // V2HttpRequest: A common proto for logging HTTP requests. Only // contains semantics defined by the HTTP specification. // Product-specific logging information MUST be defined in a separate // message. type V2HttpRequest struct { // CacheFillBytes: The number of HTTP response bytes inserted into // cache. Set only when a cache fill was attempted. CacheFillBytes int64 `json:"cacheFillBytes,omitempty,string"` // CacheHit: Whether or not an entity was served from cache (with or // without validation). CacheHit bool `json:"cacheHit,omitempty"` // CacheLookup: Whether or not a cache lookup was attempted. CacheLookup bool `json:"cacheLookup,omitempty"` // CacheValidatedWithOriginServer: Whether or not the response was // validated with the origin server before being served from cache. This // field is only meaningful if `cache_hit` is True. CacheValidatedWithOriginServer bool `json:"cacheValidatedWithOriginServer,omitempty"` // Latency: The request processing latency on the server, from the time // the request was received until the response was sent. Latency string `json:"latency,omitempty"` // Protocol: Protocol used for the request. Examples: "HTTP/1.1", // "HTTP/2", "websocket" Protocol string `json:"protocol,omitempty"` // Referer: The referer URL of the request, as defined in HTTP/1.1 // Header Field Definitions // (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html). Referer string `json:"referer,omitempty"` // RemoteIp: The IP address (IPv4 or IPv6) of the client that issued the // HTTP request. Examples: "192.168.1.1", // "FE80::0202:B3FF:FE1E:8329". RemoteIp string `json:"remoteIp,omitempty"` // RequestMethod: The request method. Examples: "GET", "HEAD", // "PUT", "POST". RequestMethod string `json:"requestMethod,omitempty"` // RequestSize: The size of the HTTP request message in bytes, including // the request headers and the request body. RequestSize int64 `json:"requestSize,omitempty,string"` // RequestUrl: The scheme (http, https), the host name, the path, and // the query portion of the URL that was requested. Example: // "http://example.com/some/info?color=red". RequestUrl string `json:"requestUrl,omitempty"` // ResponseSize: The size of the HTTP response message sent back to the // client, in bytes, including the response headers and the response // body. ResponseSize int64 `json:"responseSize,omitempty,string"` // ServerIp: The IP address (IPv4 or IPv6) of the origin server that the // request was sent to. ServerIp string `json:"serverIp,omitempty"` // Status: The response code indicating the status of the response. // Examples: 200, 404. Status int64 `json:"status,omitempty"` // UserAgent: The user agent sent by the client. Example: "Mozilla/4.0 // (compatible; MSIE 6.0; Windows 98; Q312461; .NET CLR 1.0.3705)". UserAgent string `json:"userAgent,omitempty"` // ForceSendFields is a list of field names (e.g. "CacheFillBytes") 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. "CacheFillBytes") 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 *V2HttpRequest) MarshalJSON() ([]byte, error) { type NoMethod V2HttpRequest raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // V2LogEntry: An individual log entry. type V2LogEntry struct { // HttpRequest: Optional. Information about the HTTP request associated // with this log entry, if applicable. HttpRequest *V2HttpRequest `json:"httpRequest,omitempty"` // InsertId: A unique ID for the log entry used for deduplication. If // omitted, the implementation will generate one based on operation_id. InsertId string `json:"insertId,omitempty"` // Labels: A set of user-defined (key, value) data that provides // additional information about the log entry. Labels map[string]string `json:"labels,omitempty"` // MonitoredResourceLabels: A set of user-defined (key, value) data that // provides additional information about the moniotored resource that // the log entry belongs to. MonitoredResourceLabels map[string]string `json:"monitoredResourceLabels,omitempty"` // Name: Required. The log to which this log entry belongs. Examples: // "syslog", "book_log". Name string `json:"name,omitempty"` // Operation: Optional. Information about an operation associated with // the log entry, if applicable. Operation *V2LogEntryOperation `json:"operation,omitempty"` // ProtoPayload: The log entry payload, represented as a protocol buffer // that is expressed as a JSON object. The only accepted type currently // is AuditLog. ProtoPayload googleapi.RawMessage `json:"protoPayload,omitempty"` // Severity: The severity of the log entry. The default value is // `LogSeverity.DEFAULT`. // // Possible values: // "DEFAULT" - (0) The log entry has no assigned severity level. // "DEBUG" - (100) Debug or trace information. // "INFO" - (200) Routine information, such as ongoing status or // performance. // "NOTICE" - (300) Normal but significant events, such as start up, // shut down, or a configuration change. // "WARNING" - (400) Warning events might cause problems. // "ERROR" - (500) Error events are likely to cause problems. // "CRITICAL" - (600) Critical events cause more severe problems or // outages. // "ALERT" - (700) A person must take an action immediately. // "EMERGENCY" - (800) One or more systems are unusable. Severity string `json:"severity,omitempty"` // SourceLocation: Optional. Source code location information associated // with the log entry, if any. SourceLocation *V2LogEntrySourceLocation `json:"sourceLocation,omitempty"` // StructPayload: The log entry payload, represented as a structure that // is expressed as a JSON object. StructPayload googleapi.RawMessage `json:"structPayload,omitempty"` // TextPayload: The log entry payload, represented as a Unicode string // (UTF-8). TextPayload string `json:"textPayload,omitempty"` // Timestamp: The time the event described by the log entry occurred. If // omitted, defaults to operation start time. Timestamp string `json:"timestamp,omitempty"` // Trace: Optional. Resource name of the trace associated with the log // entry, if any. If this field contains a relative resource name, you // can assume the name is relative to `//tracing.googleapis.com`. // Example: // `projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824` Trace string `json:"trace,omitempty"` // ForceSendFields is a list of field names (e.g. "HttpRequest") 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. "HttpRequest") 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 *V2LogEntry) MarshalJSON() ([]byte, error) { type NoMethod V2LogEntry raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // V2LogEntryOperation: Additional information about a potentially // long-running operation with which a log entry is associated. type V2LogEntryOperation struct { // First: Optional. Set this to True if this is the first log entry in // the operation. First bool `json:"first,omitempty"` // Id: Optional. An arbitrary operation identifier. Log entries with the // same identifier are assumed to be part of the same operation. Id string `json:"id,omitempty"` // Last: Optional. Set this to True if this is the last log entry in the // operation. Last bool `json:"last,omitempty"` // Producer: Optional. An arbitrary producer identifier. The combination // of `id` and `producer` must be globally unique. Examples for // `producer`: "MyDivision.MyBigCompany.com", // "github.com/MyProject/MyApplication". Producer string `json:"producer,omitempty"` // ForceSendFields is a list of field names (e.g. "First") 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. "First") 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 *V2LogEntryOperation) MarshalJSON() ([]byte, error) { type NoMethod V2LogEntryOperation raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // V2LogEntrySourceLocation: Additional information about the source // code location that produced the log entry. type V2LogEntrySourceLocation struct { // File: Optional. Source file name. Depending on the runtime // environment, this might be a simple name or a fully-qualified name. File string `json:"file,omitempty"` // Function: Optional. Human-readable name of the function or method // being invoked, with optional context such as the class or package // name. This information may be used in contexts such as the logs // viewer, where a file and line number are less meaningful. The format // can vary by language. For example: `qual.if.ied.Class.method` (Java), // `dir/package.func` (Go), `function` (Python). Function string `json:"function,omitempty"` // Line: Optional. Line within the source file. 1-based; 0 indicates no // line number available. Line int64 `json:"line,omitempty,string"` // ForceSendFields is a list of field names (e.g. "File") 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. "File") 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 *V2LogEntrySourceLocation) MarshalJSON() ([]byte, error) { type NoMethod V2LogEntrySourceLocation raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // ViolationInfo: Provides information about the Policy violation info // for this request. type ViolationInfo struct { // CheckedValue: Optional. Value that is being checked for the policy. // This could be in encrypted form (if pii sensitive). This field will // only be emitted in LIST_POLICY types CheckedValue string `json:"checkedValue,omitempty"` // Constraint: Optional. Constraint name Constraint string `json:"constraint,omitempty"` // ErrorMessage: Optional. Error message that policy is indicating. ErrorMessage string `json:"errorMessage,omitempty"` // PolicyType: Optional. Indicates the type of the policy. // // Possible values: // "POLICY_TYPE_UNSPECIFIED" - Default value. This value should not be // used. // "BOOLEAN_CONSTRAINT" - Indicates boolean policy constraint // "LIST_CONSTRAINT" - Indicates list policy constraint // "CUSTOM_CONSTRAINT" - Indicates custom policy constraint PolicyType string `json:"policyType,omitempty"` // ForceSendFields is a list of field names (e.g. "CheckedValue") 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. "CheckedValue") 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 *ViolationInfo) MarshalJSON() ([]byte, error) { type NoMethod ViolationInfo 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 // (https://cloud.google.com/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 // (https://cloud.google.com/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/"+internal.Version) 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](https://cloud.google.com/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](https://cloud.google.com/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 // (https://cloud.google.com/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 // (https://cloud.google.com/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/"+internal.Version) 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](https://cloud.google.com/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](https://cloud.google.com/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" // ] // } }