blob: 65f712147566a2cf156710ede55a4df0966c0ac0 [file] [log] [blame]
// Copyright 2020 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 (
// View and manage your data across Google Cloud Platform services
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 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 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 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 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 privacy reasons, the principal email address is redacted
// for all read-only operations that fail with a "permission denied"
// error.
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 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 string. For
// example:
// bigquery.googleapis.com/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 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"`
// 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 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: An 'OK' status allows the operation. Any other 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 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 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 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 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.
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 first
// 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 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 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 {
// Labels: The labels or tags on the resource, such as AWS resource tags
// and Kubernetes resource labels.
Labels map[string]string `json:"labels,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"`
// ForceSendFields is a list of field names (e.g. "Labels") to
// unconditionally include in API requests. By default, fields with
// empty 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. "Labels") 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 {
// 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. "Name") to
// unconditionally include in API requests. By default, fields with
// empty 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. "Name") 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 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 {
// 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 generates the
// first byte of the response.
Time string `json:"time,omitempty"`
// ForceSendFields is a list of field names (e.g. "Code") to
// unconditionally include in API requests. By default, fields with
// empty 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 *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"`
// 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 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, attached to Exemplars 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 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 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 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).
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/20200821")
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).
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/20200821")
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"
// ]
// }
}