Update vendored dependencies

This commit is contained in:
Alexander Neumann 2017-09-21 17:48:45 +02:00
parent 81473f4538
commit 02fc16e97d
254 changed files with 107898 additions and 82739 deletions

14
Gopkg.lock generated
View File

@ -22,8 +22,8 @@
[[projects]]
name = "github.com/Azure/go-autorest"
packages = ["autorest","autorest/adal","autorest/azure","autorest/date"]
revision = "5432abe734f8d95c78340cd56712f912906e6514"
version = "v8.3.1"
revision = "f6be1abbb5abd0517522f850dd785990d373da7e"
version = "v8.4.0"
[[projects]]
name = "github.com/cpuguy83/go-md2man"
@ -59,7 +59,7 @@
branch = "master"
name = "github.com/golang/protobuf"
packages = ["proto"]
revision = "17ce1425424ab154092bbb43af630bd647f3bb0d"
revision = "130e6b02ab059e7b717a096f397c5b60111cae74"
[[projects]]
name = "github.com/inconshreveable/mousetrap"
@ -161,13 +161,13 @@
branch = "master"
name = "golang.org/x/crypto"
packages = ["curve25519","ed25519","ed25519/internal/edwards25519","pbkdf2","poly1305","scrypt","ssh","ssh/terminal"]
revision = "faadfbdc035307d901e69eea569f5dda451a3ee3"
revision = "7d9177d70076375b9a59c8fde23d52d9c4a7ecd5"
[[projects]]
branch = "master"
name = "golang.org/x/net"
packages = ["context","context/ctxhttp"]
revision = "b129b8e0fbeb39c8358e51a07ab6c50ad415e72e"
revision = "b60f3a92103dfd93dfcb900ec77c6d0643510868"
[[projects]]
branch = "master"
@ -179,13 +179,13 @@
branch = "master"
name = "golang.org/x/sys"
packages = ["unix","windows"]
revision = "062cd7e4e68206d8bab9b18396626e855c992658"
revision = "b6e1ae21643682ce023deb8d152024597b0e9bb4"
[[projects]]
branch = "master"
name = "google.golang.org/api"
packages = ["gensupport","googleapi","googleapi/internal/uritemplates","storage/v1"]
revision = "2fe03ca2dc379c00d654a4459d1a50812cac2848"
revision = "586095a6e4078caf0dc0b64f8545fa8679442013"
[[projects]]
name = "google.golang.org/appengine"

View File

@ -7,6 +7,8 @@
# Folders
_obj
_test
.DS_Store
.idea/
# Architecture specific extensions/prefixes
*.[568vq]

23
vendor/github.com/Azure/go-autorest/GNUmakefile generated vendored Normal file
View File

@ -0,0 +1,23 @@
DIR?=./autorest/
default: build
build: fmt
go install $(DIR)
test:
go test $(DIR) || exit 1
vet:
@echo "go vet ."
@go vet $(DIR)... ; if [ $$? -eq 1 ]; then \
echo ""; \
echo "Vet found suspicious constructs. Please check the reported constructs"; \
echo "and fix them if necessary before submitting the code for review."; \
exit 1; \
fi
fmt:
gofmt -w $(DIR)
.PHONY: build test vet fmt

View File

@ -0,0 +1,6 @@
// +build !windows
package adal
// msiPath is the path to the MSI Extension settings file (to discover the endpoint)
var msiPath = "/var/lib/waagent/ManagedIdentity-Settings"

View File

@ -0,0 +1,11 @@
// +build windows
package adal
import (
"os"
"strings"
)
// msiPath is the path to the MSI Extension settings file (to discover the endpoint)
var msiPath = strings.Join([]string{os.Getenv("SystemDrive"), "WindowsAzure/Config/ManagedIdentity-Settings"}, "/")

View File

@ -15,12 +15,12 @@ import (
"strings"
"time"
"github.com/Azure/go-autorest/autorest/date"
"github.com/dgrijalva/jwt-go"
)
const (
defaultRefresh = 5 * time.Minute
tokenBaseDate = "1970-01-01T00:00:00Z"
// OAuthGrantTypeDeviceCode is the "grant_type" identifier used in device flow
OAuthGrantTypeDeviceCode = "device_code"
@ -31,19 +31,10 @@ const (
// OAuthGrantTypeRefreshToken is the "grant_type" identifier used in refresh token flows
OAuthGrantTypeRefreshToken = "refresh_token"
// managedIdentitySettingsPath is the path to the MSI Extension settings file (to discover the endpoint)
managedIdentitySettingsPath = "/var/lib/waagent/ManagedIdentity-Settings"
// metadataHeader is the header required by MSI extension
metadataHeader = "Metadata"
)
var expirationBase time.Time
func init() {
expirationBase, _ = time.Parse(time.RFC3339, tokenBaseDate)
}
// OAuthTokenProvider is an interface which should be implemented by an access token retriever
type OAuthTokenProvider interface {
OAuthToken() string
@ -79,7 +70,10 @@ func (t Token) Expires() time.Time {
if err != nil {
s = -3600
}
return expirationBase.Add(time.Duration(s) * time.Second).UTC()
expiration := date.NewUnixTimeFromSeconds(float64(s))
return time.Time(expiration).UTC()
}
// IsExpired returns true if the Token is expired, false otherwise.
@ -138,9 +132,7 @@ type ServicePrincipalMSISecret struct {
}
// SetAuthenticationValues is a method of the interface ServicePrincipalSecret.
// MSI extension requires the authority field to be set to the real tenant authority endpoint
func (msiSecret *ServicePrincipalMSISecret) SetAuthenticationValues(spt *ServicePrincipalToken, v *url.Values) error {
v.Set("authority", spt.oauthConfig.AuthorityEndpoint.String())
return nil
}
@ -264,41 +256,43 @@ func NewServicePrincipalTokenFromCertificate(oauthConfig OAuthConfig, clientID s
)
}
// NewServicePrincipalTokenFromMSI creates a ServicePrincipalToken via the MSI VM Extension.
func NewServicePrincipalTokenFromMSI(oauthConfig OAuthConfig, resource string, callbacks ...TokenRefreshCallback) (*ServicePrincipalToken, error) {
return newServicePrincipalTokenFromMSI(oauthConfig, resource, managedIdentitySettingsPath, callbacks...)
// GetMSIVMEndpoint gets the MSI endpoint on Virtual Machines.
func GetMSIVMEndpoint() (string, error) {
return getMSIVMEndpoint(msiPath)
}
func newServicePrincipalTokenFromMSI(oauthConfig OAuthConfig, resource, settingsPath string, callbacks ...TokenRefreshCallback) (*ServicePrincipalToken, error) {
func getMSIVMEndpoint(path string) (string, error) {
// Read MSI settings
bytes, err := ioutil.ReadFile(settingsPath)
bytes, err := ioutil.ReadFile(path)
if err != nil {
return nil, err
return "", err
}
msiSettings := struct {
URL string `json:"url"`
}{}
err = json.Unmarshal(bytes, &msiSettings)
if err != nil {
return nil, err
return "", err
}
return msiSettings.URL, nil
}
// NewServicePrincipalTokenFromMSI creates a ServicePrincipalToken via the MSI VM Extension.
func NewServicePrincipalTokenFromMSI(msiEndpoint, resource string, callbacks ...TokenRefreshCallback) (*ServicePrincipalToken, error) {
// We set the oauth config token endpoint to be MSI's endpoint
// We leave the authority as-is so MSI can POST it with the token request
msiEndpointURL, err := url.Parse(msiSettings.URL)
msiEndpointURL, err := url.Parse(msiEndpoint)
if err != nil {
return nil, err
}
msiTokenEndpointURL, err := msiEndpointURL.Parse("/oauth2/token")
oauthConfig, err := NewOAuthConfig(msiEndpointURL.String(), "")
if err != nil {
return nil, err
}
oauthConfig.TokenEndpoint = *msiTokenEndpointURL
spt := &ServicePrincipalToken{
oauthConfig: oauthConfig,
oauthConfig: *oauthConfig,
secret: &ServicePrincipalMSISecret{},
resource: resource,
autoRefresh: true,
@ -374,12 +368,17 @@ func (spt *ServicePrincipalToken) refreshInternal(resource string) error {
if err != nil {
return fmt.Errorf("adal: Failed to execute the refresh request. Error = '%v'", err)
}
defer resp.Body.Close()
rb, err := ioutil.ReadAll(resp.Body)
if resp.StatusCode != http.StatusOK {
return fmt.Errorf("adal: Refresh request failed. Status Code = '%d'", resp.StatusCode)
if err != nil {
return fmt.Errorf("adal: Refresh request failed. Status Code = '%d'. Failed reading response body", resp.StatusCode)
}
return fmt.Errorf("adal: Refresh request failed. Status Code = '%d'. Response body: %s", resp.StatusCode, string(rb))
}
rb, err := ioutil.ReadAll(resp.Body)
if err != nil {
return fmt.Errorf("adal: Failed to read a new service principal token during refresh. Error = '%v'", err)
}

View File

@ -17,6 +17,7 @@ import (
"testing"
"time"
"github.com/Azure/go-autorest/autorest/date"
"github.com/Azure/go-autorest/autorest/mocks"
)
@ -135,32 +136,9 @@ func TestServicePrincipalTokenRefreshUsesPOST(t *testing.T) {
func TestServicePrincipalTokenFromMSIRefreshUsesPOST(t *testing.T) {
resource := "https://resource"
cb := func(token Token) error { return nil }
tempSettingsFile, err := ioutil.TempFile("", "ManagedIdentity-Settings")
if err != nil {
t.Fatal("Couldn't write temp settings file")
}
defer os.Remove(tempSettingsFile.Name())
settingsContents := []byte(`{
"url": "http://msiendpoint/"
}`)
if _, err := tempSettingsFile.Write(settingsContents); err != nil {
t.Fatal("Couldn't fill temp settings file")
}
oauthConfig, err := NewOAuthConfig("http://adendpoint", "1-2-3-4")
if err != nil {
t.Fatal("Failed to construct oauthconfig")
}
spt, err := newServicePrincipalTokenFromMSI(
*oauthConfig,
resource,
tempSettingsFile.Name(),
cb)
spt, err := NewServicePrincipalTokenFromMSI("http://msiendpoint/", resource, cb)
if err != nil {
t.Fatalf("Failed to get MSI SPT: %v", err)
}
@ -403,7 +381,7 @@ func TestServicePrincipalTokenRefreshReturnsErrorIfNotOk(t *testing.T) {
func TestServicePrincipalTokenRefreshUnmarshals(t *testing.T) {
spt := newServicePrincipalToken()
expiresOn := strconv.Itoa(int(time.Now().Add(3600 * time.Second).Sub(expirationBase).Seconds()))
expiresOn := strconv.Itoa(int(time.Now().Add(3600 * time.Second).Sub(date.UnixEpoch()).Seconds()))
j := newTokenJSON(expiresOn, "resource")
resp := mocks.NewResponseWithContent(j)
c := mocks.NewSender()
@ -491,7 +469,7 @@ func TestRefreshCallback(t *testing.T) {
return nil
})
expiresOn := strconv.Itoa(int(time.Now().Add(3600 * time.Second).Sub(expirationBase).Seconds()))
expiresOn := strconv.Itoa(int(time.Now().Add(3600 * time.Second).Sub(date.UnixEpoch()).Seconds()))
sender := mocks.NewSender()
j := newTokenJSON(expiresOn, "resource")
@ -512,7 +490,7 @@ func TestRefreshCallbackErrorPropagates(t *testing.T) {
return fmt.Errorf(errorText)
})
expiresOn := strconv.Itoa(int(time.Now().Add(3600 * time.Second).Sub(expirationBase).Seconds()))
expiresOn := strconv.Itoa(int(time.Now().Add(3600 * time.Second).Sub(date.UnixEpoch()).Seconds()))
sender := mocks.NewSender()
j := newTokenJSON(expiresOn, "resource")
@ -537,32 +515,9 @@ func TestServicePrincipalTokenManualRefreshFailsWithoutRefresh(t *testing.T) {
func TestNewServicePrincipalTokenFromMSI(t *testing.T) {
resource := "https://resource"
cb := func(token Token) error { return nil }
tempSettingsFile, err := ioutil.TempFile("", "ManagedIdentity-Settings")
if err != nil {
t.Fatal("Couldn't write temp settings file")
}
defer os.Remove(tempSettingsFile.Name())
settingsContents := []byte(`{
"url": "http://msiendpoint/"
}`)
if _, err := tempSettingsFile.Write(settingsContents); err != nil {
t.Fatal("Couldn't fill temp settings file")
}
oauthConfig, err := NewOAuthConfig("http://adendpoint", "1-2-3-4")
if err != nil {
t.Fatal("Failed to construct oauthconfig")
}
spt, err := newServicePrincipalTokenFromMSI(
*oauthConfig,
resource,
tempSettingsFile.Name(),
cb)
spt, err := NewServicePrincipalTokenFromMSI("http://msiendpoint/", resource, cb)
if err != nil {
t.Fatalf("Failed to get MSI SPT: %v", err)
}
@ -581,6 +536,31 @@ func TestNewServicePrincipalTokenFromMSI(t *testing.T) {
}
}
func TestGetVMEndpoint(t *testing.T) {
tempSettingsFile, err := ioutil.TempFile("", "ManagedIdentity-Settings")
if err != nil {
t.Fatal("Couldn't write temp settings file")
}
defer os.Remove(tempSettingsFile.Name())
settingsContents := []byte(`{
"url": "http://msiendpoint/"
}`)
if _, err := tempSettingsFile.Write(settingsContents); err != nil {
t.Fatal("Couldn't fill temp settings file")
}
endpoint, err := getMSIVMEndpoint(tempSettingsFile.Name())
if err != nil {
t.Fatal("Coudn't get VM endpoint")
}
if endpoint != "http://msiendpoint/" {
t.Fatal("Didn't get correct endpoint")
}
}
func newToken() *Token {
return &Token{
AccessToken: "ASECRETVALUE",
@ -615,7 +595,7 @@ func expireToken(t *Token) *Token {
func setTokenToExpireAt(t *Token, expireAt time.Time) *Token {
t.ExpiresIn = "3600"
t.ExpiresOn = strconv.Itoa(int(expireAt.Sub(expirationBase).Seconds()))
t.ExpiresOn = strconv.Itoa(int(expireAt.Sub(date.UnixEpoch()).Seconds()))
t.NotBefore = t.ExpiresOn
return t
}

View File

@ -0,0 +1,51 @@
package cli
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"github.com/dimchansky/utfbom"
"github.com/mitchellh/go-homedir"
)
// Profile represents a Profile from the Azure CLI
type Profile struct {
InstallationID string `json:"installationId"`
Subscriptions []Subscription `json:"subscriptions"`
}
// Subscription represents a Subscription from the Azure CLI
type Subscription struct {
EnvironmentName string `json:"environmentName"`
ID string `json:"id"`
IsDefault bool `json:"isDefault"`
Name string `json:"name"`
State string `json:"state"`
TenantID string `json:"tenantId"`
}
// ProfilePath returns the path where the Azure Profile is stored from the Azure CLI
func ProfilePath() (string, error) {
return homedir.Expand("~/.azure/azureProfile.json")
}
// LoadProfile restores a Profile object from a file located at 'path'.
func LoadProfile(path string) (result Profile, err error) {
var contents []byte
contents, err = ioutil.ReadFile(path)
if err != nil {
err = fmt.Errorf("failed to open file (%s) while loading token: %v", path, err)
return
}
reader := utfbom.SkipOnly(bytes.NewReader(contents))
dec := json.NewDecoder(reader)
if err = dec.Decode(&result); err != nil {
err = fmt.Errorf("failed to decode contents of file (%s) into a Profile representation: %v", path, err)
return
}
return
}

View File

@ -0,0 +1,89 @@
package cli
import (
"encoding/json"
"fmt"
"os"
"strconv"
"time"
"github.com/Azure/go-autorest/autorest/adal"
"github.com/Azure/go-autorest/autorest/date"
"github.com/mitchellh/go-homedir"
)
// Token represents an AccessToken from the Azure CLI
type Token struct {
AccessToken string `json:"accessToken"`
Authority string `json:"_authority"`
ClientID string `json:"_clientId"`
ExpiresOn string `json:"expiresOn"`
IdentityProvider string `json:"identityProvider"`
IsMRRT bool `json:"isMRRT"`
RefreshToken string `json:"refreshToken"`
Resource string `json:"resource"`
TokenType string `json:"tokenType"`
UserID string `json:"userId"`
}
// ToADALToken converts an Azure CLI `Token`` to an `adal.Token``
func (t Token) ToADALToken() (converted adal.Token, err error) {
tokenExpirationDate, err := ParseExpirationDate(t.ExpiresOn)
if err != nil {
err = fmt.Errorf("Error parsing Token Expiration Date %q: %+v", t.ExpiresOn, err)
return
}
difference := tokenExpirationDate.Sub(date.UnixEpoch())
converted = adal.Token{
AccessToken: t.AccessToken,
Type: t.TokenType,
ExpiresIn: "3600",
ExpiresOn: strconv.Itoa(int(difference.Seconds())),
RefreshToken: t.RefreshToken,
Resource: t.Resource,
}
return
}
// AccessTokensPath returns the path where access tokens are stored from the Azure CLI
func AccessTokensPath() (string, error) {
return homedir.Expand("~/.azure/accessTokens.json")
}
// ParseExpirationDate parses either a Azure CLI or CloudShell date into a time object
func ParseExpirationDate(input string) (*time.Time, error) {
// CloudShell (and potentially the Azure CLI in future)
expirationDate, cloudShellErr := time.Parse(time.RFC3339, input)
if cloudShellErr != nil {
// Azure CLI (Python) e.g. 2017-08-31 19:48:57.998857 (plus the local timezone)
const cliFormat = "2006-01-02 15:04:05.999999"
expirationDate, cliErr := time.ParseInLocation(cliFormat, input, time.Local)
if cliErr == nil {
return &expirationDate, nil
}
return nil, fmt.Errorf("Error parsing expiration date %q.\n\nCloudShell Error: \n%+v\n\nCLI Error:\n%+v", input, cloudShellErr, cliErr)
}
return &expirationDate, nil
}
// LoadTokens restores a set of Token objects from a file located at 'path'.
func LoadTokens(path string) ([]Token, error) {
file, err := os.Open(path)
if err != nil {
return nil, fmt.Errorf("failed to open file (%s) while loading token: %v", path, err)
}
defer file.Close()
var tokens []Token
dec := json.NewDecoder(file)
if err = dec.Decode(&tokens); err != nil {
return nil, fmt.Errorf("failed to decode contents of file (%s) into a `cli.Token` representation: %v", path, err)
}
return tokens, nil
}

View File

@ -1,42 +1,44 @@
hash: 51202aefdfe9c4a992f96ab58f6cacf21cdbd1b66efe955c9030bca736ac816d
updated: 2017-02-14T17:07:23.015382703-08:00
hash: 6e0121d946623e7e609280b1b18627e1c8a767fdece54cb97c4447c1167cbc46
updated: 2017-08-31T13:58:01.034822883+01:00
imports:
- name: github.com/dgrijalva/jwt-go
version: a601269ab70c205d26370c16f7c81e9017c14e04
version: 2268707a8f0843315e2004ee4f1d021dc08baedf
subpackages:
- .
- name: github.com/dimchansky/utfbom
version: 6c6132ff69f0f6c088739067407b5d32c52e1d0f
- name: github.com/mitchellh/go-homedir
version: b8bc1bf767474819792c23f32d8286a45736f1c6
- name: golang.org/x/crypto
version: 453249f01cfeb54c3d549ddb75ff152ca243f9d8
version: 81e90905daefcd6fd217b62423c0908922eadb30
repo: https://github.com/golang/crypto.git
vcs: git
subpackages:
- pkcs12
- pkcs12/internal/rc2
- name: golang.org/x/net
version: 61557ac0112b576429a0df080e1c2cef5dfbb642
version: 66aacef3dd8a676686c7ae3716979581e8b03c47
repo: https://github.com/golang/net.git
vcs: git
subpackages:
- .
- name: golang.org/x/text
version: 06d6eba81293389cafdff7fca90d75592194b2d9
version: 21e35d45962262c8ee80f6cb048dcf95ad0e9d79
repo: https://github.com/golang/text.git
vcs: git
subpackages:
- .
testImports:
- name: github.com/davecgh/go-spew
version: 346938d642f2ec3594ed81d874461961cd0faa76
version: 04cdfd42973bb9c8589fd6a731800cf222fde1a9
subpackages:
- spew
- name: github.com/Masterminds/semver
version: 59c29afe1a994eacb71c833025ca7acf874bb1da
- name: github.com/pmezard/go-difflib
version: 792786c7400a136282c1664665ae0a8db921c6c2
version: d8ed2627bdf02c080bf22230dbb337003b7aba2d
subpackages:
- difflib
- name: github.com/stretchr/testify
version: 4d4bfba8f1d1027c4fdbe371823030df51419987
version: 890a5c3458b43e6104ff5da8dfa139d013d77544
subpackages:
- assert
- require

View File

@ -4,25 +4,19 @@ import:
subpackages:
- .
- package: golang.org/x/crypto
vcs: git
repo: https://github.com/golang/crypto.git
subpackages:
- /pkcs12
- package: golang.org/x/net
vcs: git
subpackages:
- pkcs12
- package: golang.org/x/net
repo: https://github.com/golang/net.git
vcs: git
subpackages:
- .
- package: golang.org/x/text
vcs: git
repo: https://github.com/golang/text.git
vcs: git
subpackages:
- .
testImports:
- package: github.com/stretchr/testify
vcs: git
repo: https://github.com/stretchr/testify.git
subpackages:
- /require
- package: github.com/Masterminds/semver
version: ~1.2.2
- package: github.com/mitchellh/go-homedir
- package: github.com/dimchansky/utfbom

View File

@ -673,7 +673,8 @@ func (u *Unmarshaler) unmarshalValue(target reflect.Value, inputValue json.RawMe
if targetType.Kind() == reflect.Ptr {
// If input value is "null" and target is a pointer type, then the field should be treated as not set
// UNLESS the target is structpb.Value, in which case it should be set to structpb.NullValue.
if string(inputValue) == "null" && targetType != reflect.TypeOf(&stpb.Value{}) {
_, isJSONPBUnmarshaler := target.Interface().(JSONPBUnmarshaler)
if string(inputValue) == "null" && targetType != reflect.TypeOf(&stpb.Value{}) && !isJSONPBUnmarshaler {
return nil
}
target.Set(reflect.New(targetType.Elem()))

View File

@ -791,6 +791,19 @@ func TestUnmarshalJSONPBUnmarshaler(t *testing.T) {
}
}
func TestUnmarshalNullWithJSONPBUnmarshaler(t *testing.T) {
rawJson := `{"stringField":null}`
var ptrFieldMsg ptrFieldMessage
if err := Unmarshal(strings.NewReader(rawJson), &ptrFieldMsg); err != nil {
t.Errorf("unmarshal error: %v", err)
}
want := ptrFieldMessage{StringField: &stringField{IsSet: true, StringValue: "null"}}
if !proto.Equal(&ptrFieldMsg, &want) {
t.Errorf("unmarshal result StringField: got %v, want %v", ptrFieldMsg, want)
}
}
func TestUnmarshalAnyJSONPBUnmarshaler(t *testing.T) {
rawJson := `{ "@type": "blah.com/` + dynamicMessageName + `", "foo": "bar", "baz": [0, 1, 2, 3] }`
var got anypb.Any
@ -821,6 +834,41 @@ func init() {
proto.RegisterType((*dynamicMessage)(nil), dynamicMessageName)
}
type ptrFieldMessage struct {
StringField *stringField `protobuf:"bytes,1,opt,name=stringField"`
}
func (m *ptrFieldMessage) Reset() {
}
func (m *ptrFieldMessage) String() string {
return m.StringField.StringValue
}
func (m *ptrFieldMessage) ProtoMessage() {
}
type stringField struct {
IsSet bool `protobuf:"varint,1,opt,name=isSet"`
StringValue string `protobuf:"bytes,2,opt,name=stringValue"`
}
func (s *stringField) Reset() {
}
func (s *stringField) String() string {
return s.StringValue
}
func (s *stringField) ProtoMessage() {
}
func (s *stringField) UnmarshalJSONPB(jum *Unmarshaler, js []byte) error {
s.IsSet = true
s.StringValue = string(js)
return nil
}
// dynamicMessage implements protobuf.Message but is not a normal generated message type.
// It provides implementations of JSONPBMarshaler and JSONPBUnmarshaler for JSON support.
type dynamicMessage struct {

View File

@ -11,6 +11,7 @@ It has these top-level messages:
FileDescriptorSet
FileDescriptorProto
DescriptorProto
ExtensionRangeOptions
FieldDescriptorProto
OneofDescriptorProto
EnumDescriptorProto
@ -137,7 +138,7 @@ func (x *FieldDescriptorProto_Type) UnmarshalJSON(data []byte) error {
*x = FieldDescriptorProto_Type(value)
return nil
}
func (FieldDescriptorProto_Type) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{3, 0} }
func (FieldDescriptorProto_Type) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{4, 0} }
type FieldDescriptorProto_Label int32
@ -176,7 +177,7 @@ func (x *FieldDescriptorProto_Label) UnmarshalJSON(data []byte) error {
return nil
}
func (FieldDescriptorProto_Label) EnumDescriptor() ([]byte, []int) {
return fileDescriptor0, []int{3, 1}
return fileDescriptor0, []int{4, 1}
}
// Generated classes can be optimized for speed or code size.
@ -216,7 +217,7 @@ func (x *FileOptions_OptimizeMode) UnmarshalJSON(data []byte) error {
*x = FileOptions_OptimizeMode(value)
return nil
}
func (FileOptions_OptimizeMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{9, 0} }
func (FileOptions_OptimizeMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{10, 0} }
type FieldOptions_CType int32
@ -254,7 +255,7 @@ func (x *FieldOptions_CType) UnmarshalJSON(data []byte) error {
*x = FieldOptions_CType(value)
return nil
}
func (FieldOptions_CType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{11, 0} }
func (FieldOptions_CType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{12, 0} }
type FieldOptions_JSType int32
@ -294,7 +295,7 @@ func (x *FieldOptions_JSType) UnmarshalJSON(data []byte) error {
*x = FieldOptions_JSType(value)
return nil
}
func (FieldOptions_JSType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{11, 1} }
func (FieldOptions_JSType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{12, 1} }
// Is this method side-effect-free (or safe in HTTP parlance), or idempotent,
// or neither? HTTP based RPC implementation may choose GET verb for safe
@ -335,7 +336,7 @@ func (x *MethodOptions_IdempotencyLevel) UnmarshalJSON(data []byte) error {
return nil
}
func (MethodOptions_IdempotencyLevel) EnumDescriptor() ([]byte, []int) {
return fileDescriptor0, []int{16, 0}
return fileDescriptor0, []int{17, 0}
}
// The protocol compiler can output a FileDescriptorSet containing the .proto
@ -567,9 +568,10 @@ func (m *DescriptorProto) GetReservedName() []string {
}
type DescriptorProto_ExtensionRange struct {
Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"`
End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"`
XXX_unrecognized []byte `json:"-"`
Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"`
End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"`
Options *ExtensionRangeOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *DescriptorProto_ExtensionRange) Reset() { *m = DescriptorProto_ExtensionRange{} }
@ -593,6 +595,13 @@ func (m *DescriptorProto_ExtensionRange) GetEnd() int32 {
return 0
}
func (m *DescriptorProto_ExtensionRange) GetOptions() *ExtensionRangeOptions {
if m != nil {
return m.Options
}
return nil
}
// Range of reserved tag numbers. Reserved tag numbers may not be used by
// fields or extension ranges in the same message. Reserved ranges may
// not overlap.
@ -623,6 +632,33 @@ func (m *DescriptorProto_ReservedRange) GetEnd() int32 {
return 0
}
type ExtensionRangeOptions struct {
// The parser stores options it doesn't recognize here. See above.
UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"`
proto.XXX_InternalExtensions `json:"-"`
XXX_unrecognized []byte `json:"-"`
}
func (m *ExtensionRangeOptions) Reset() { *m = ExtensionRangeOptions{} }
func (m *ExtensionRangeOptions) String() string { return proto.CompactTextString(m) }
func (*ExtensionRangeOptions) ProtoMessage() {}
func (*ExtensionRangeOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
var extRange_ExtensionRangeOptions = []proto.ExtensionRange{
{1000, 536870911},
}
func (*ExtensionRangeOptions) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_ExtensionRangeOptions
}
func (m *ExtensionRangeOptions) GetUninterpretedOption() []*UninterpretedOption {
if m != nil {
return m.UninterpretedOption
}
return nil
}
// Describes a field within a message.
type FieldDescriptorProto struct {
Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
@ -661,7 +697,7 @@ type FieldDescriptorProto struct {
func (m *FieldDescriptorProto) Reset() { *m = FieldDescriptorProto{} }
func (m *FieldDescriptorProto) String() string { return proto.CompactTextString(m) }
func (*FieldDescriptorProto) ProtoMessage() {}
func (*FieldDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
func (*FieldDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
func (m *FieldDescriptorProto) GetName() string {
if m != nil && m.Name != nil {
@ -743,7 +779,7 @@ type OneofDescriptorProto struct {
func (m *OneofDescriptorProto) Reset() { *m = OneofDescriptorProto{} }
func (m *OneofDescriptorProto) String() string { return proto.CompactTextString(m) }
func (*OneofDescriptorProto) ProtoMessage() {}
func (*OneofDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
func (*OneofDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
func (m *OneofDescriptorProto) GetName() string {
if m != nil && m.Name != nil {
@ -770,7 +806,7 @@ type EnumDescriptorProto struct {
func (m *EnumDescriptorProto) Reset() { *m = EnumDescriptorProto{} }
func (m *EnumDescriptorProto) String() string { return proto.CompactTextString(m) }
func (*EnumDescriptorProto) ProtoMessage() {}
func (*EnumDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
func (*EnumDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
func (m *EnumDescriptorProto) GetName() string {
if m != nil && m.Name != nil {
@ -804,7 +840,7 @@ type EnumValueDescriptorProto struct {
func (m *EnumValueDescriptorProto) Reset() { *m = EnumValueDescriptorProto{} }
func (m *EnumValueDescriptorProto) String() string { return proto.CompactTextString(m) }
func (*EnumValueDescriptorProto) ProtoMessage() {}
func (*EnumValueDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
func (*EnumValueDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
func (m *EnumValueDescriptorProto) GetName() string {
if m != nil && m.Name != nil {
@ -838,7 +874,7 @@ type ServiceDescriptorProto struct {
func (m *ServiceDescriptorProto) Reset() { *m = ServiceDescriptorProto{} }
func (m *ServiceDescriptorProto) String() string { return proto.CompactTextString(m) }
func (*ServiceDescriptorProto) ProtoMessage() {}
func (*ServiceDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
func (*ServiceDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
func (m *ServiceDescriptorProto) GetName() string {
if m != nil && m.Name != nil {
@ -879,7 +915,7 @@ type MethodDescriptorProto struct {
func (m *MethodDescriptorProto) Reset() { *m = MethodDescriptorProto{} }
func (m *MethodDescriptorProto) String() string { return proto.CompactTextString(m) }
func (*MethodDescriptorProto) ProtoMessage() {}
func (*MethodDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
func (*MethodDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
const Default_MethodDescriptorProto_ClientStreaming bool = false
const Default_MethodDescriptorProto_ServerStreaming bool = false
@ -974,7 +1010,7 @@ type FileOptions struct {
CcGenericServices *bool `protobuf:"varint,16,opt,name=cc_generic_services,json=ccGenericServices,def=0" json:"cc_generic_services,omitempty"`
JavaGenericServices *bool `protobuf:"varint,17,opt,name=java_generic_services,json=javaGenericServices,def=0" json:"java_generic_services,omitempty"`
PyGenericServices *bool `protobuf:"varint,18,opt,name=py_generic_services,json=pyGenericServices,def=0" json:"py_generic_services,omitempty"`
PhpGenericServices *bool `protobuf:"varint,19,opt,name=php_generic_services,json=phpGenericServices,def=0" json:"php_generic_services,omitempty"`
PhpGenericServices *bool `protobuf:"varint,42,opt,name=php_generic_services,json=phpGenericServices,def=0" json:"php_generic_services,omitempty"`
// Is this file deprecated?
// Depending on the target platform, this can emit Deprecated annotations
// for everything in the file, or it will be completely ignored; in the very
@ -1009,7 +1045,7 @@ type FileOptions struct {
func (m *FileOptions) Reset() { *m = FileOptions{} }
func (m *FileOptions) String() string { return proto.CompactTextString(m) }
func (*FileOptions) ProtoMessage() {}
func (*FileOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
func (*FileOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
var extRange_FileOptions = []proto.ExtensionRange{
{1000, 536870911},
@ -1222,7 +1258,7 @@ type MessageOptions struct {
func (m *MessageOptions) Reset() { *m = MessageOptions{} }
func (m *MessageOptions) String() string { return proto.CompactTextString(m) }
func (*MessageOptions) ProtoMessage() {}
func (*MessageOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
func (*MessageOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
var extRange_MessageOptions = []proto.ExtensionRange{
{1000, 536870911},
@ -1285,13 +1321,15 @@ type FieldOptions struct {
Packed *bool `protobuf:"varint,2,opt,name=packed" json:"packed,omitempty"`
// The jstype option determines the JavaScript type used for values of the
// field. The option is permitted only for 64 bit integral and fixed types
// (int64, uint64, sint64, fixed64, sfixed64). By default these types are
// represented as JavaScript strings. This avoids loss of precision that can
// happen when a large value is converted to a floating point JavaScript
// numbers. Specifying JS_NUMBER for the jstype causes the generated
// JavaScript code to use the JavaScript "number" type instead of strings.
// This option is an enum to permit additional types to be added,
// e.g. goog.math.Integer.
// (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING
// is represented as JavaScript string, which avoids loss of precision that
// can happen when a large value is converted to a floating point JavaScript.
// Specifying JS_NUMBER for the jstype causes the generated JavaScript code to
// use the JavaScript "number" type. The behavior of the default option
// JS_NORMAL is implementation dependent.
//
// This option is an enum to permit additional types to be added, e.g.
// goog.math.Integer.
Jstype *FieldOptions_JSType `protobuf:"varint,6,opt,name=jstype,enum=google.protobuf.FieldOptions_JSType,def=0" json:"jstype,omitempty"`
// Should this field be parsed lazily? Lazy applies only to message-type
// fields. It means that when the outer message is initially parsed, the
@ -1338,7 +1376,7 @@ type FieldOptions struct {
func (m *FieldOptions) Reset() { *m = FieldOptions{} }
func (m *FieldOptions) String() string { return proto.CompactTextString(m) }
func (*FieldOptions) ProtoMessage() {}
func (*FieldOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
func (*FieldOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
var extRange_FieldOptions = []proto.ExtensionRange{
{1000, 536870911},
@ -1413,7 +1451,7 @@ type OneofOptions struct {
func (m *OneofOptions) Reset() { *m = OneofOptions{} }
func (m *OneofOptions) String() string { return proto.CompactTextString(m) }
func (*OneofOptions) ProtoMessage() {}
func (*OneofOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
func (*OneofOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
var extRange_OneofOptions = []proto.ExtensionRange{
{1000, 536870911},
@ -1448,7 +1486,7 @@ type EnumOptions struct {
func (m *EnumOptions) Reset() { *m = EnumOptions{} }
func (m *EnumOptions) String() string { return proto.CompactTextString(m) }
func (*EnumOptions) ProtoMessage() {}
func (*EnumOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
func (*EnumOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
var extRange_EnumOptions = []proto.ExtensionRange{
{1000, 536870911},
@ -1496,7 +1534,7 @@ type EnumValueOptions struct {
func (m *EnumValueOptions) Reset() { *m = EnumValueOptions{} }
func (m *EnumValueOptions) String() string { return proto.CompactTextString(m) }
func (*EnumValueOptions) ProtoMessage() {}
func (*EnumValueOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
func (*EnumValueOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
var extRange_EnumValueOptions = []proto.ExtensionRange{
{1000, 536870911},
@ -1537,7 +1575,7 @@ type ServiceOptions struct {
func (m *ServiceOptions) Reset() { *m = ServiceOptions{} }
func (m *ServiceOptions) String() string { return proto.CompactTextString(m) }
func (*ServiceOptions) ProtoMessage() {}
func (*ServiceOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
func (*ServiceOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
var extRange_ServiceOptions = []proto.ExtensionRange{
{1000, 536870911},
@ -1579,7 +1617,7 @@ type MethodOptions struct {
func (m *MethodOptions) Reset() { *m = MethodOptions{} }
func (m *MethodOptions) String() string { return proto.CompactTextString(m) }
func (*MethodOptions) ProtoMessage() {}
func (*MethodOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
func (*MethodOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
var extRange_MethodOptions = []proto.ExtensionRange{
{1000, 536870911},
@ -1635,7 +1673,7 @@ type UninterpretedOption struct {
func (m *UninterpretedOption) Reset() { *m = UninterpretedOption{} }
func (m *UninterpretedOption) String() string { return proto.CompactTextString(m) }
func (*UninterpretedOption) ProtoMessage() {}
func (*UninterpretedOption) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
func (*UninterpretedOption) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
func (m *UninterpretedOption) GetName() []*UninterpretedOption_NamePart {
if m != nil {
@ -1701,7 +1739,7 @@ func (m *UninterpretedOption_NamePart) Reset() { *m = UninterpretedOptio
func (m *UninterpretedOption_NamePart) String() string { return proto.CompactTextString(m) }
func (*UninterpretedOption_NamePart) ProtoMessage() {}
func (*UninterpretedOption_NamePart) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{17, 0}
return fileDescriptor0, []int{18, 0}
}
func (m *UninterpretedOption_NamePart) GetNamePart() string {
@ -1771,7 +1809,7 @@ type SourceCodeInfo struct {
func (m *SourceCodeInfo) Reset() { *m = SourceCodeInfo{} }
func (m *SourceCodeInfo) String() string { return proto.CompactTextString(m) }
func (*SourceCodeInfo) ProtoMessage() {}
func (*SourceCodeInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
func (*SourceCodeInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
func (m *SourceCodeInfo) GetLocation() []*SourceCodeInfo_Location {
if m != nil {
@ -1867,7 +1905,7 @@ type SourceCodeInfo_Location struct {
func (m *SourceCodeInfo_Location) Reset() { *m = SourceCodeInfo_Location{} }
func (m *SourceCodeInfo_Location) String() string { return proto.CompactTextString(m) }
func (*SourceCodeInfo_Location) ProtoMessage() {}
func (*SourceCodeInfo_Location) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18, 0} }
func (*SourceCodeInfo_Location) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19, 0} }
func (m *SourceCodeInfo_Location) GetPath() []int32 {
if m != nil {
@ -1917,7 +1955,7 @@ type GeneratedCodeInfo struct {
func (m *GeneratedCodeInfo) Reset() { *m = GeneratedCodeInfo{} }
func (m *GeneratedCodeInfo) String() string { return proto.CompactTextString(m) }
func (*GeneratedCodeInfo) ProtoMessage() {}
func (*GeneratedCodeInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
func (*GeneratedCodeInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }
func (m *GeneratedCodeInfo) GetAnnotation() []*GeneratedCodeInfo_Annotation {
if m != nil {
@ -1946,7 +1984,7 @@ func (m *GeneratedCodeInfo_Annotation) Reset() { *m = GeneratedCodeInfo_
func (m *GeneratedCodeInfo_Annotation) String() string { return proto.CompactTextString(m) }
func (*GeneratedCodeInfo_Annotation) ProtoMessage() {}
func (*GeneratedCodeInfo_Annotation) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{19, 0}
return fileDescriptor0, []int{20, 0}
}
func (m *GeneratedCodeInfo_Annotation) GetPath() []int32 {
@ -1983,6 +2021,7 @@ func init() {
proto.RegisterType((*DescriptorProto)(nil), "google.protobuf.DescriptorProto")
proto.RegisterType((*DescriptorProto_ExtensionRange)(nil), "google.protobuf.DescriptorProto.ExtensionRange")
proto.RegisterType((*DescriptorProto_ReservedRange)(nil), "google.protobuf.DescriptorProto.ReservedRange")
proto.RegisterType((*ExtensionRangeOptions)(nil), "google.protobuf.ExtensionRangeOptions")
proto.RegisterType((*FieldDescriptorProto)(nil), "google.protobuf.FieldDescriptorProto")
proto.RegisterType((*OneofDescriptorProto)(nil), "google.protobuf.OneofDescriptorProto")
proto.RegisterType((*EnumDescriptorProto)(nil), "google.protobuf.EnumDescriptorProto")
@ -2014,161 +2053,163 @@ func init() {
func init() { proto.RegisterFile("google/protobuf/descriptor.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 2490 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xdd, 0x8e, 0xdb, 0xc6,
0x15, 0x8e, 0x7e, 0x57, 0x3a, 0xd2, 0x6a, 0x67, 0x67, 0x37, 0x36, 0xbd, 0xf9, 0xf1, 0x5a, 0xf9,
0xf1, 0x3a, 0x69, 0xb4, 0xc1, 0xc6, 0x76, 0x9c, 0x4d, 0xe1, 0x42, 0x2b, 0xd1, 0x1b, 0xb9, 0x5a,
0x49, 0xa5, 0xb4, 0x8d, 0x9d, 0x1b, 0x62, 0x96, 0x1c, 0x49, 0xb4, 0x29, 0x92, 0x21, 0x29, 0xdb,
0x9b, 0x2b, 0x03, 0xbd, 0x2a, 0xd0, 0x07, 0x28, 0x8a, 0xa2, 0x17, 0xb9, 0x09, 0xd0, 0x07, 0x28,
0xd0, 0xbb, 0x3e, 0x41, 0x81, 0xbc, 0x41, 0x51, 0x14, 0x68, 0xdf, 0xa0, 0xb7, 0xc5, 0xcc, 0x90,
0x14, 0xa9, 0x1f, 0x7b, 0x1b, 0xc0, 0xc9, 0x95, 0x34, 0xdf, 0xf9, 0xce, 0x99, 0x33, 0x67, 0xce,
0xcc, 0x9c, 0x19, 0xc2, 0xee, 0xc8, 0xb6, 0x47, 0x26, 0xdd, 0x77, 0x5c, 0xdb, 0xb7, 0xcf, 0xa6,
0xc3, 0x7d, 0x9d, 0x7a, 0x9a, 0x6b, 0x38, 0xbe, 0xed, 0xd6, 0x38, 0x86, 0x37, 0x04, 0xa3, 0x16,
0x32, 0xaa, 0x27, 0xb0, 0x79, 0xcf, 0x30, 0x69, 0x33, 0x22, 0xf6, 0xa9, 0x8f, 0xef, 0x40, 0x76,
0x68, 0x98, 0x54, 0x4a, 0xed, 0x66, 0xf6, 0x4a, 0x07, 0xef, 0xd6, 0xe6, 0x94, 0x6a, 0x49, 0x8d,
0x1e, 0x83, 0x15, 0xae, 0x51, 0xfd, 0x57, 0x16, 0xb6, 0x96, 0x48, 0x31, 0x86, 0xac, 0x45, 0x26,
0xcc, 0x62, 0x6a, 0xaf, 0xa8, 0xf0, 0xff, 0x58, 0x82, 0x35, 0x87, 0x68, 0x8f, 0xc9, 0x88, 0x4a,
0x69, 0x0e, 0x87, 0x4d, 0xfc, 0x36, 0x80, 0x4e, 0x1d, 0x6a, 0xe9, 0xd4, 0xd2, 0xce, 0xa5, 0xcc,
0x6e, 0x66, 0xaf, 0xa8, 0xc4, 0x10, 0xfc, 0x21, 0x6c, 0x3a, 0xd3, 0x33, 0xd3, 0xd0, 0xd4, 0x18,
0x0d, 0x76, 0x33, 0x7b, 0x39, 0x05, 0x09, 0x41, 0x73, 0x46, 0xbe, 0x0e, 0x1b, 0x4f, 0x29, 0x79,
0x1c, 0xa7, 0x96, 0x38, 0xb5, 0xc2, 0xe0, 0x18, 0xb1, 0x01, 0xe5, 0x09, 0xf5, 0x3c, 0x32, 0xa2,
0xaa, 0x7f, 0xee, 0x50, 0x29, 0xcb, 0x47, 0xbf, 0xbb, 0x30, 0xfa, 0xf9, 0x91, 0x97, 0x02, 0xad,
0xc1, 0xb9, 0x43, 0x71, 0x1d, 0x8a, 0xd4, 0x9a, 0x4e, 0x84, 0x85, 0xdc, 0x8a, 0xf8, 0xc9, 0xd6,
0x74, 0x32, 0x6f, 0xa5, 0xc0, 0xd4, 0x02, 0x13, 0x6b, 0x1e, 0x75, 0x9f, 0x18, 0x1a, 0x95, 0xf2,
0xdc, 0xc0, 0xf5, 0x05, 0x03, 0x7d, 0x21, 0x9f, 0xb7, 0x11, 0xea, 0xe1, 0x06, 0x14, 0xe9, 0x33,
0x9f, 0x5a, 0x9e, 0x61, 0x5b, 0xd2, 0x1a, 0x37, 0xf2, 0xde, 0x92, 0x59, 0xa4, 0xa6, 0x3e, 0x6f,
0x62, 0xa6, 0x87, 0x6f, 0xc3, 0x9a, 0xed, 0xf8, 0x86, 0x6d, 0x79, 0x52, 0x61, 0x37, 0xb5, 0x57,
0x3a, 0x78, 0x73, 0x69, 0x22, 0x74, 0x05, 0x47, 0x09, 0xc9, 0xb8, 0x05, 0xc8, 0xb3, 0xa7, 0xae,
0x46, 0x55, 0xcd, 0xd6, 0xa9, 0x6a, 0x58, 0x43, 0x5b, 0x2a, 0x72, 0x03, 0x57, 0x17, 0x07, 0xc2,
0x89, 0x0d, 0x5b, 0xa7, 0x2d, 0x6b, 0x68, 0x2b, 0x15, 0x2f, 0xd1, 0xc6, 0x97, 0x20, 0xef, 0x9d,
0x5b, 0x3e, 0x79, 0x26, 0x95, 0x79, 0x86, 0x04, 0xad, 0xea, 0x7f, 0x73, 0xb0, 0x71, 0x91, 0x14,
0xfb, 0x1c, 0x72, 0x43, 0x36, 0x4a, 0x29, 0xfd, 0xff, 0xc4, 0x40, 0xe8, 0x24, 0x83, 0x98, 0xff,
0x81, 0x41, 0xac, 0x43, 0xc9, 0xa2, 0x9e, 0x4f, 0x75, 0x91, 0x11, 0x99, 0x0b, 0xe6, 0x14, 0x08,
0xa5, 0xc5, 0x94, 0xca, 0xfe, 0xa0, 0x94, 0x7a, 0x00, 0x1b, 0x91, 0x4b, 0xaa, 0x4b, 0xac, 0x51,
0x98, 0x9b, 0xfb, 0x2f, 0xf3, 0xa4, 0x26, 0x87, 0x7a, 0x0a, 0x53, 0x53, 0x2a, 0x34, 0xd1, 0xc6,
0x4d, 0x00, 0xdb, 0xa2, 0xf6, 0x50, 0xd5, 0xa9, 0x66, 0x4a, 0x85, 0x15, 0x51, 0xea, 0x32, 0xca,
0x42, 0x94, 0x6c, 0x81, 0x6a, 0x26, 0xfe, 0x6c, 0x96, 0x6a, 0x6b, 0x2b, 0x32, 0xe5, 0x44, 0x2c,
0xb2, 0x85, 0x6c, 0x3b, 0x85, 0x8a, 0x4b, 0x59, 0xde, 0x53, 0x3d, 0x18, 0x59, 0x91, 0x3b, 0x51,
0x7b, 0xe9, 0xc8, 0x94, 0x40, 0x4d, 0x0c, 0x6c, 0xdd, 0x8d, 0x37, 0xf1, 0x3b, 0x10, 0x01, 0x2a,
0x4f, 0x2b, 0xe0, 0xbb, 0x50, 0x39, 0x04, 0x3b, 0x64, 0x42, 0x77, 0xee, 0x40, 0x25, 0x19, 0x1e,
0xbc, 0x0d, 0x39, 0xcf, 0x27, 0xae, 0xcf, 0xb3, 0x30, 0xa7, 0x88, 0x06, 0x46, 0x90, 0xa1, 0x96,
0xce, 0x77, 0xb9, 0x9c, 0xc2, 0xfe, 0xee, 0x7c, 0x0a, 0xeb, 0x89, 0xee, 0x2f, 0xaa, 0x58, 0xfd,
0x7d, 0x1e, 0xb6, 0x97, 0xe5, 0xdc, 0xd2, 0xf4, 0xbf, 0x04, 0x79, 0x6b, 0x3a, 0x39, 0xa3, 0xae,
0x94, 0xe1, 0x16, 0x82, 0x16, 0xae, 0x43, 0xce, 0x24, 0x67, 0xd4, 0x94, 0xb2, 0xbb, 0xa9, 0xbd,
0xca, 0xc1, 0x87, 0x17, 0xca, 0xea, 0x5a, 0x9b, 0xa9, 0x28, 0x42, 0x13, 0xdf, 0x85, 0x6c, 0xb0,
0xc5, 0x31, 0x0b, 0x1f, 0x5c, 0xcc, 0x02, 0xcb, 0x45, 0x85, 0xeb, 0xe1, 0x37, 0xa0, 0xc8, 0x7e,
0x45, 0x6c, 0xf3, 0xdc, 0xe7, 0x02, 0x03, 0x58, 0x5c, 0xf1, 0x0e, 0x14, 0x78, 0x9a, 0xe9, 0x34,
0x3c, 0x1a, 0xa2, 0x36, 0x9b, 0x18, 0x9d, 0x0e, 0xc9, 0xd4, 0xf4, 0xd5, 0x27, 0xc4, 0x9c, 0x52,
0x9e, 0x30, 0x45, 0xa5, 0x1c, 0x80, 0xbf, 0x66, 0x18, 0xbe, 0x0a, 0x25, 0x91, 0x95, 0x86, 0xa5,
0xd3, 0x67, 0x7c, 0xf7, 0xc9, 0x29, 0x22, 0x51, 0x5b, 0x0c, 0x61, 0xdd, 0x3f, 0xf2, 0x6c, 0x2b,
0x9c, 0x5a, 0xde, 0x05, 0x03, 0x78, 0xf7, 0x9f, 0xce, 0x6f, 0x7c, 0x6f, 0x2d, 0x1f, 0xde, 0x7c,
0x2e, 0x56, 0xff, 0x92, 0x86, 0x2c, 0x5f, 0x6f, 0x1b, 0x50, 0x1a, 0x3c, 0xec, 0xc9, 0x6a, 0xb3,
0x7b, 0x7a, 0xd4, 0x96, 0x51, 0x0a, 0x57, 0x00, 0x38, 0x70, 0xaf, 0xdd, 0xad, 0x0f, 0x50, 0x3a,
0x6a, 0xb7, 0x3a, 0x83, 0xdb, 0x37, 0x51, 0x26, 0x52, 0x38, 0x15, 0x40, 0x36, 0x4e, 0xf8, 0xe4,
0x00, 0xe5, 0x30, 0x82, 0xb2, 0x30, 0xd0, 0x7a, 0x20, 0x37, 0x6f, 0xdf, 0x44, 0xf9, 0x24, 0xf2,
0xc9, 0x01, 0x5a, 0xc3, 0xeb, 0x50, 0xe4, 0xc8, 0x51, 0xb7, 0xdb, 0x46, 0x85, 0xc8, 0x66, 0x7f,
0xa0, 0xb4, 0x3a, 0xc7, 0xa8, 0x18, 0xd9, 0x3c, 0x56, 0xba, 0xa7, 0x3d, 0x04, 0x91, 0x85, 0x13,
0xb9, 0xdf, 0xaf, 0x1f, 0xcb, 0xa8, 0x14, 0x31, 0x8e, 0x1e, 0x0e, 0xe4, 0x3e, 0x2a, 0x27, 0xdc,
0xfa, 0xe4, 0x00, 0xad, 0x47, 0x5d, 0xc8, 0x9d, 0xd3, 0x13, 0x54, 0xc1, 0x9b, 0xb0, 0x2e, 0xba,
0x08, 0x9d, 0xd8, 0x98, 0x83, 0x6e, 0xdf, 0x44, 0x68, 0xe6, 0x88, 0xb0, 0xb2, 0x99, 0x00, 0x6e,
0xdf, 0x44, 0xb8, 0xda, 0x80, 0x1c, 0xcf, 0x2e, 0x8c, 0xa1, 0xd2, 0xae, 0x1f, 0xc9, 0x6d, 0xb5,
0xdb, 0x1b, 0xb4, 0xba, 0x9d, 0x7a, 0x1b, 0xa5, 0x66, 0x98, 0x22, 0xff, 0xea, 0xb4, 0xa5, 0xc8,
0x4d, 0x94, 0x8e, 0x63, 0x3d, 0xb9, 0x3e, 0x90, 0x9b, 0x28, 0x53, 0xd5, 0x60, 0x7b, 0xd9, 0x3e,
0xb3, 0x74, 0x65, 0xc4, 0xa6, 0x38, 0xbd, 0x62, 0x8a, 0xb9, 0xad, 0x85, 0x29, 0xfe, 0x36, 0x05,
0x5b, 0x4b, 0xf6, 0xda, 0xa5, 0x9d, 0xfc, 0x02, 0x72, 0x22, 0x45, 0xc5, 0xe9, 0x73, 0x63, 0xe9,
0xa6, 0xcd, 0x13, 0x76, 0xe1, 0x04, 0xe2, 0x7a, 0xf1, 0x13, 0x38, 0xb3, 0xe2, 0x04, 0x66, 0x26,
0x16, 0x9c, 0xfc, 0x4d, 0x0a, 0xa4, 0x55, 0xb6, 0x5f, 0xb2, 0x51, 0xa4, 0x13, 0x1b, 0xc5, 0xe7,
0xf3, 0x0e, 0x5c, 0x5b, 0x3d, 0x86, 0x05, 0x2f, 0xbe, 0x4b, 0xc1, 0xa5, 0xe5, 0x85, 0xca, 0x52,
0x1f, 0xee, 0x42, 0x7e, 0x42, 0xfd, 0xb1, 0x1d, 0x1e, 0xd6, 0xef, 0x2f, 0x39, 0x02, 0x98, 0x78,
0x3e, 0x56, 0x81, 0x56, 0xfc, 0x0c, 0xc9, 0xac, 0xaa, 0x36, 0x84, 0x37, 0x0b, 0x9e, 0xfe, 0x36,
0x0d, 0xaf, 0x2f, 0x35, 0xbe, 0xd4, 0xd1, 0xb7, 0x00, 0x0c, 0xcb, 0x99, 0xfa, 0xe2, 0x40, 0x16,
// 2519 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xdd, 0x6e, 0x1b, 0xc7,
0x15, 0x0e, 0x7f, 0x45, 0x1e, 0x52, 0xd4, 0x68, 0xa4, 0xd8, 0x6b, 0xe5, 0xc7, 0x32, 0xf3, 0x63,
0xd9, 0x69, 0xa8, 0x40, 0xb1, 0x1d, 0x47, 0x29, 0xd2, 0x52, 0xe4, 0x5a, 0xa1, 0x4a, 0x91, 0xec,
0x92, 0x6a, 0x7e, 0x6e, 0x16, 0xa3, 0xdd, 0x21, 0xb9, 0xf6, 0x72, 0x77, 0xb3, 0xbb, 0xb4, 0xad,
0xa0, 0x17, 0x06, 0x7a, 0x55, 0xa0, 0x0f, 0x50, 0x14, 0x45, 0x2f, 0x72, 0x13, 0xa0, 0x0f, 0x50,
0x20, 0x77, 0x7d, 0x82, 0x02, 0x79, 0x83, 0xa2, 0x28, 0xd0, 0x3e, 0x46, 0x31, 0x33, 0xbb, 0xcb,
0x5d, 0xfe, 0xc4, 0x6a, 0x80, 0x38, 0x57, 0xe4, 0x7c, 0xe7, 0x3b, 0x67, 0xce, 0x9c, 0x39, 0x33,
0x73, 0x66, 0x16, 0x76, 0x47, 0xb6, 0x3d, 0x32, 0xe9, 0xbe, 0xe3, 0xda, 0xbe, 0x7d, 0x3e, 0x1d,
0xee, 0xeb, 0xd4, 0xd3, 0x5c, 0xc3, 0xf1, 0x6d, 0xb7, 0xc6, 0x31, 0xbc, 0x21, 0x18, 0xb5, 0x90,
0x51, 0x3d, 0x85, 0xcd, 0x07, 0x86, 0x49, 0x9b, 0x11, 0xb1, 0x4f, 0x7d, 0x7c, 0x1f, 0xb2, 0x43,
0xc3, 0xa4, 0x52, 0x6a, 0x37, 0xb3, 0x57, 0x3a, 0x78, 0xb3, 0x36, 0xa7, 0x54, 0x4b, 0x6a, 0xf4,
0x18, 0xac, 0x70, 0x8d, 0xea, 0xbf, 0xb3, 0xb0, 0xb5, 0x44, 0x8a, 0x31, 0x64, 0x2d, 0x32, 0x61,
0x16, 0x53, 0x7b, 0x45, 0x85, 0xff, 0xc7, 0x12, 0xac, 0x39, 0x44, 0x7b, 0x44, 0x46, 0x54, 0x4a,
0x73, 0x38, 0x6c, 0xe2, 0xd7, 0x01, 0x74, 0xea, 0x50, 0x4b, 0xa7, 0x96, 0x76, 0x21, 0x65, 0x76,
0x33, 0x7b, 0x45, 0x25, 0x86, 0xe0, 0x77, 0x60, 0xd3, 0x99, 0x9e, 0x9b, 0x86, 0xa6, 0xc6, 0x68,
0xb0, 0x9b, 0xd9, 0xcb, 0x29, 0x48, 0x08, 0x9a, 0x33, 0xf2, 0x4d, 0xd8, 0x78, 0x42, 0xc9, 0xa3,
0x38, 0xb5, 0xc4, 0xa9, 0x15, 0x06, 0xc7, 0x88, 0x0d, 0x28, 0x4f, 0xa8, 0xe7, 0x91, 0x11, 0x55,
0xfd, 0x0b, 0x87, 0x4a, 0x59, 0x3e, 0xfa, 0xdd, 0x85, 0xd1, 0xcf, 0x8f, 0xbc, 0x14, 0x68, 0x0d,
0x2e, 0x1c, 0x8a, 0xeb, 0x50, 0xa4, 0xd6, 0x74, 0x22, 0x2c, 0xe4, 0x56, 0xc4, 0x4f, 0xb6, 0xa6,
0x93, 0x79, 0x2b, 0x05, 0xa6, 0x16, 0x98, 0x58, 0xf3, 0xa8, 0xfb, 0xd8, 0xd0, 0xa8, 0x94, 0xe7,
0x06, 0x6e, 0x2e, 0x18, 0xe8, 0x0b, 0xf9, 0xbc, 0x8d, 0x50, 0x0f, 0x37, 0xa0, 0x48, 0x9f, 0xfa,
0xd4, 0xf2, 0x0c, 0xdb, 0x92, 0xd6, 0xb8, 0x91, 0xb7, 0x96, 0xcc, 0x22, 0x35, 0xf5, 0x79, 0x13,
0x33, 0x3d, 0x7c, 0x0f, 0xd6, 0x6c, 0xc7, 0x37, 0x6c, 0xcb, 0x93, 0x0a, 0xbb, 0xa9, 0xbd, 0xd2,
0xc1, 0xab, 0x4b, 0x13, 0xa1, 0x2b, 0x38, 0x4a, 0x48, 0xc6, 0x2d, 0x40, 0x9e, 0x3d, 0x75, 0x35,
0xaa, 0x6a, 0xb6, 0x4e, 0x55, 0xc3, 0x1a, 0xda, 0x52, 0x91, 0x1b, 0xb8, 0xbe, 0x38, 0x10, 0x4e,
0x6c, 0xd8, 0x3a, 0x6d, 0x59, 0x43, 0x5b, 0xa9, 0x78, 0x89, 0x36, 0xbe, 0x02, 0x79, 0xef, 0xc2,
0xf2, 0xc9, 0x53, 0xa9, 0xcc, 0x33, 0x24, 0x68, 0x55, 0xbf, 0xcd, 0xc3, 0xc6, 0x65, 0x52, 0xec,
0x23, 0xc8, 0x0d, 0xd9, 0x28, 0xa5, 0xf4, 0xff, 0x13, 0x03, 0xa1, 0x93, 0x0c, 0x62, 0xfe, 0x07,
0x06, 0xb1, 0x0e, 0x25, 0x8b, 0x7a, 0x3e, 0xd5, 0x45, 0x46, 0x64, 0x2e, 0x99, 0x53, 0x20, 0x94,
0x16, 0x53, 0x2a, 0xfb, 0x83, 0x52, 0xea, 0x33, 0xd8, 0x88, 0x5c, 0x52, 0x5d, 0x62, 0x8d, 0xc2,
0xdc, 0xdc, 0x7f, 0x9e, 0x27, 0x35, 0x39, 0xd4, 0x53, 0x98, 0x9a, 0x52, 0xa1, 0x89, 0x36, 0x6e,
0x02, 0xd8, 0x16, 0xb5, 0x87, 0xaa, 0x4e, 0x35, 0x53, 0x2a, 0xac, 0x88, 0x52, 0x97, 0x51, 0x16,
0xa2, 0x64, 0x0b, 0x54, 0x33, 0xf1, 0x87, 0xb3, 0x54, 0x5b, 0x5b, 0x91, 0x29, 0xa7, 0x62, 0x91,
0x2d, 0x64, 0xdb, 0x19, 0x54, 0x5c, 0xca, 0xf2, 0x9e, 0xea, 0xc1, 0xc8, 0x8a, 0xdc, 0x89, 0xda,
0x73, 0x47, 0xa6, 0x04, 0x6a, 0x62, 0x60, 0xeb, 0x6e, 0xbc, 0x89, 0xdf, 0x80, 0x08, 0x50, 0x79,
0x5a, 0x01, 0xdf, 0x85, 0xca, 0x21, 0xd8, 0x21, 0x13, 0xba, 0xf3, 0x15, 0x54, 0x92, 0xe1, 0xc1,
0xdb, 0x90, 0xf3, 0x7c, 0xe2, 0xfa, 0x3c, 0x0b, 0x73, 0x8a, 0x68, 0x60, 0x04, 0x19, 0x6a, 0xe9,
0x7c, 0x97, 0xcb, 0x29, 0xec, 0x2f, 0xfe, 0xe5, 0x6c, 0xc0, 0x19, 0x3e, 0xe0, 0xb7, 0x17, 0x67,
0x34, 0x61, 0x79, 0x7e, 0xdc, 0x3b, 0x1f, 0xc0, 0x7a, 0x62, 0x00, 0x97, 0xed, 0xba, 0xfa, 0x5b,
0x78, 0x79, 0xa9, 0x69, 0xfc, 0x19, 0x6c, 0x4f, 0x2d, 0xc3, 0xf2, 0xa9, 0xeb, 0xb8, 0x94, 0x65,
0xac, 0xe8, 0x4a, 0xfa, 0xcf, 0xda, 0x8a, 0x9c, 0x3b, 0x8b, 0xb3, 0x85, 0x15, 0x65, 0x6b, 0xba,
0x08, 0xde, 0x2e, 0x16, 0xfe, 0xbb, 0x86, 0x9e, 0x3d, 0x7b, 0xf6, 0x2c, 0x5d, 0xfd, 0x63, 0x1e,
0xb6, 0x97, 0xad, 0x99, 0xa5, 0xcb, 0xf7, 0x0a, 0xe4, 0xad, 0xe9, 0xe4, 0x9c, 0xba, 0x3c, 0x48,
0x39, 0x25, 0x68, 0xe1, 0x3a, 0xe4, 0x4c, 0x72, 0x4e, 0x4d, 0x29, 0xbb, 0x9b, 0xda, 0xab, 0x1c,
0xbc, 0x73, 0xa9, 0x55, 0x59, 0x6b, 0x33, 0x15, 0x45, 0x68, 0xe2, 0x8f, 0x21, 0x1b, 0x6c, 0xd1,
0xcc, 0xc2, 0xed, 0xcb, 0x59, 0x60, 0x6b, 0x49, 0xe1, 0x7a, 0xf8, 0x15, 0x28, 0xb2, 0x5f, 0x91,
0x1b, 0x79, 0xee, 0x73, 0x81, 0x01, 0x2c, 0x2f, 0xf0, 0x0e, 0x14, 0xf8, 0x32, 0xd1, 0x69, 0x78,
0xb4, 0x45, 0x6d, 0x96, 0x58, 0x3a, 0x1d, 0x92, 0xa9, 0xe9, 0xab, 0x8f, 0x89, 0x39, 0xa5, 0x3c,
0xe1, 0x8b, 0x4a, 0x39, 0x00, 0x7f, 0xc3, 0x30, 0x7c, 0x1d, 0x4a, 0x62, 0x55, 0x19, 0x96, 0x4e,
0x9f, 0xf2, 0xdd, 0x33, 0xa7, 0x88, 0x85, 0xd6, 0x62, 0x08, 0xeb, 0xfe, 0xa1, 0x67, 0x5b, 0x61,
0x6a, 0xf2, 0x2e, 0x18, 0xc0, 0xbb, 0xff, 0x60, 0x7e, 0xe3, 0x7e, 0x6d, 0xf9, 0xf0, 0xe6, 0x73,
0xaa, 0xfa, 0xb7, 0x34, 0x64, 0xf9, 0x7e, 0xb1, 0x01, 0xa5, 0xc1, 0xe7, 0x3d, 0x59, 0x6d, 0x76,
0xcf, 0x8e, 0xda, 0x32, 0x4a, 0xe1, 0x0a, 0x00, 0x07, 0x1e, 0xb4, 0xbb, 0xf5, 0x01, 0x4a, 0x47,
0xed, 0x56, 0x67, 0x70, 0xef, 0x0e, 0xca, 0x44, 0x0a, 0x67, 0x02, 0xc8, 0xc6, 0x09, 0xef, 0x1f,
0xa0, 0x1c, 0x46, 0x50, 0x16, 0x06, 0x5a, 0x9f, 0xc9, 0xcd, 0x7b, 0x77, 0x50, 0x3e, 0x89, 0xbc,
0x7f, 0x80, 0xd6, 0xf0, 0x3a, 0x14, 0x39, 0x72, 0xd4, 0xed, 0xb6, 0x51, 0x21, 0xb2, 0xd9, 0x1f,
0x28, 0xad, 0xce, 0x31, 0x2a, 0x46, 0x36, 0x8f, 0x95, 0xee, 0x59, 0x0f, 0x41, 0x64, 0xe1, 0x54,
0xee, 0xf7, 0xeb, 0xc7, 0x32, 0x2a, 0x45, 0x8c, 0xa3, 0xcf, 0x07, 0x72, 0x1f, 0x95, 0x13, 0x6e,
0xbd, 0x7f, 0x80, 0xd6, 0xa3, 0x2e, 0xe4, 0xce, 0xd9, 0x29, 0xaa, 0xe0, 0x4d, 0x58, 0x17, 0x5d,
0x84, 0x4e, 0x6c, 0xcc, 0x41, 0xf7, 0xee, 0x20, 0x34, 0x73, 0x44, 0x58, 0xd9, 0x4c, 0x00, 0xf7,
0xee, 0x20, 0x5c, 0x6d, 0x40, 0x8e, 0x67, 0x17, 0xc6, 0x50, 0x69, 0xd7, 0x8f, 0xe4, 0xb6, 0xda,
0xed, 0x0d, 0x5a, 0xdd, 0x4e, 0xbd, 0x8d, 0x52, 0x33, 0x4c, 0x91, 0x7f, 0x7d, 0xd6, 0x52, 0xe4,
0x26, 0x4a, 0xc7, 0xb1, 0x9e, 0x5c, 0x1f, 0xc8, 0x4d, 0x94, 0xa9, 0x6a, 0xb0, 0xbd, 0x6c, 0x9f,
0x5c, 0xba, 0x32, 0x62, 0x53, 0x9c, 0x5e, 0x31, 0xc5, 0xdc, 0xd6, 0xc2, 0x14, 0x7f, 0x9d, 0x82,
0xad, 0x25, 0x67, 0xc5, 0xd2, 0x4e, 0x7e, 0x01, 0x39, 0x91, 0xa2, 0xe2, 0xf4, 0xbc, 0xb5, 0xf4,
0xd0, 0xe1, 0x09, 0xbb, 0x70, 0x82, 0x72, 0xbd, 0x78, 0x05, 0x91, 0x59, 0x51, 0x41, 0x30, 0x13,
0x0b, 0x4e, 0xfe, 0x2e, 0x05, 0xd2, 0x2a, 0xdb, 0xcf, 0xd9, 0x28, 0xd2, 0x89, 0x8d, 0xe2, 0xa3,
0x79, 0x07, 0x6e, 0xac, 0x1e, 0xc3, 0x82, 0x17, 0xdf, 0xa4, 0xe0, 0xca, 0xf2, 0x42, 0x6b, 0xa9,
0x0f, 0x1f, 0x43, 0x7e, 0x42, 0xfd, 0xb1, 0x1d, 0x16, 0x1b, 0x6f, 0x2f, 0x39, 0xc2, 0x98, 0x78,
0x3e, 0x56, 0x81, 0x56, 0xfc, 0x0c, 0xcc, 0xac, 0xaa, 0x96, 0x84, 0x37, 0x0b, 0x9e, 0xfe, 0x3e,
0x0d, 0x2f, 0x2f, 0x35, 0xbe, 0xd4, 0xd1, 0xd7, 0x00, 0x0c, 0xcb, 0x99, 0xfa, 0xa2, 0xa0, 0x10,
0xfb, 0x53, 0x91, 0x23, 0x7c, 0xed, 0xb3, 0xbd, 0x67, 0xea, 0x47, 0xf2, 0x0c, 0x97, 0x83, 0x80,
0x38, 0xe1, 0xce, 0xcc, 0xd1, 0x2c, 0x77, 0xf4, 0xed, 0x15, 0x23, 0x5d, 0x38, 0xeb, 0x3e, 0x06,
0x38, 0xe1, 0xfe, 0xcc, 0xd1, 0x2c, 0x77, 0xf4, 0xf5, 0x15, 0x23, 0x5d, 0x38, 0xab, 0xdf, 0x03,
0xa4, 0x99, 0x06, 0xb5, 0x7c, 0xd5, 0xf3, 0x5d, 0x4a, 0x26, 0x86, 0x35, 0xe2, 0x1b, 0x70, 0xe1,
0x30, 0x37, 0x24, 0xa6, 0x47, 0x95, 0x0d, 0x21, 0xee, 0x87, 0x52, 0xa6, 0xc1, 0x4f, 0x19, 0x37,
0xa6, 0x91, 0x4f, 0x68, 0x08, 0x71, 0xa4, 0x51, 0xfd, 0x6b, 0x01, 0x4a, 0xb1, 0xb2, 0x0e, 0x5f,
0x83, 0xf2, 0x23, 0xf2, 0x84, 0xa8, 0x61, 0xa9, 0x2e, 0x22, 0x51, 0x62, 0x58, 0x2f, 0x28, 0xd7,
0x3f, 0x86, 0x6d, 0x4e, 0xb1, 0xa7, 0x3e, 0x75, 0x55, 0xcd, 0x24, 0x9e, 0xc7, 0x83, 0x56, 0xe0,
0x54, 0xcc, 0x64, 0x5d, 0x26, 0x6a, 0x84, 0x12, 0x7c, 0x0b, 0xb6, 0xb8, 0xc6, 0x64, 0x6a, 0xfa,
0x86, 0x63, 0x52, 0x95, 0x5d, 0x1e, 0x3c, 0xbe, 0x11, 0x47, 0x9e, 0x6d, 0x32, 0xc6, 0x49, 0x40,
0x60, 0x1e, 0x79, 0xb8, 0x09, 0x6f, 0x71, 0xb5, 0x11, 0xb5, 0xa8, 0x4b, 0x7c, 0xaa, 0xd2, 0xaf,
0xa7, 0xc4, 0xf4, 0x54, 0x62, 0xe9, 0xea, 0x98, 0x78, 0x63, 0x69, 0x9b, 0x19, 0x38, 0x4a, 0x4b,
0x29, 0xe5, 0x0a, 0x23, 0x1e, 0x07, 0x3c, 0x99, 0xd3, 0xea, 0x96, 0xfe, 0x05, 0xf1, 0xc6, 0xf8,
0x10, 0x2e, 0x71, 0x2b, 0x9e, 0xef, 0x1a, 0xd6, 0x48, 0xd5, 0xc6, 0x54, 0x7b, 0xac, 0x4e, 0xfd,
0xe1, 0x1d, 0xe9, 0x8d, 0x78, 0xff, 0xdc, 0xc3, 0x3e, 0xe7, 0x34, 0x18, 0xe5, 0xd4, 0x1f, 0xde,
0xc1, 0x7d, 0x28, 0xb3, 0xc9, 0x98, 0x18, 0xdf, 0x50, 0x75, 0x68, 0xbb, 0xfc, 0x64, 0xa9, 0x2c,
0x59, 0xd9, 0xb1, 0x08, 0xd6, 0xba, 0x81, 0xc2, 0x89, 0xad, 0xd3, 0xc3, 0x5c, 0xbf, 0x27, 0xcb,
0x4d, 0xa5, 0x14, 0x5a, 0xb9, 0x67, 0xbb, 0x2c, 0xa1, 0x46, 0x76, 0x14, 0xe0, 0x92, 0x48, 0xa8,
0x91, 0x1d, 0x86, 0xf7, 0x16, 0x6c, 0x69, 0x9a, 0x18, 0xb3, 0xa1, 0xa9, 0x41, 0x89, 0xef, 0x49,
0x28, 0x11, 0x2c, 0x4d, 0x3b, 0x16, 0x84, 0x20, 0xc7, 0x3d, 0xfc, 0x19, 0xbc, 0x3e, 0x0b, 0x56,
0x5c, 0x71, 0x73, 0x61, 0x94, 0xf3, 0xaa, 0xb7, 0x60, 0xcb, 0x39, 0x5f, 0x54, 0xc4, 0x89, 0x1e,
0x9d, 0xf3, 0x79, 0xb5, 0x4f, 0x61, 0xdb, 0x19, 0x3b, 0x8b, 0x7a, 0x5b, 0x71, 0x3d, 0xec, 0x8c,
0x9d, 0x79, 0xc5, 0xf7, 0xf8, 0x7d, 0xcf, 0xa5, 0x1a, 0xf1, 0xa9, 0x2e, 0x5d, 0x8e, 0xd3, 0x63,
0x02, 0xbc, 0x0f, 0x48, 0xd3, 0x54, 0x6a, 0x91, 0x33, 0x93, 0xaa, 0xc4, 0xa5, 0x16, 0xf1, 0xa4,
0xab, 0x71, 0x72, 0x45, 0xd3, 0x64, 0x2e, 0xad, 0x73, 0x21, 0xfe, 0x00, 0x36, 0xed, 0xb3, 0x47,
0x9a, 0x48, 0x49, 0xd5, 0x71, 0xe9, 0xd0, 0x78, 0x26, 0xbd, 0xcb, 0xe3, 0xbb, 0xc1, 0x04, 0x3c,
0x21, 0x7b, 0x1c, 0xc6, 0x37, 0x00, 0x69, 0xde, 0x98, 0xb8, 0x0e, 0xaf, 0x09, 0x3c, 0x87, 0x68,
0x54, 0x7a, 0x4f, 0x50, 0x05, 0xde, 0x09, 0x61, 0xb6, 0x24, 0xbc, 0xa7, 0xc6, 0xd0, 0x0f, 0x2d,
0x5e, 0x17, 0x4b, 0x82, 0x63, 0x81, 0xb5, 0x3d, 0x40, 0x2c, 0x14, 0x89, 0x8e, 0xf7, 0x38, 0xad,
0xe2, 0x8c, 0x9d, 0x78, 0xbf, 0xef, 0xc0, 0x3a, 0x63, 0xce, 0x3a, 0xbd, 0x21, 0xea, 0x19, 0x67,
0x1c, 0xeb, 0xf1, 0x01, 0x6c, 0x4f, 0x2d, 0xc3, 0xf2, 0xa9, 0xeb, 0xb8, 0x94, 0x5d, 0x26, 0xc4,
0x8e, 0x20, 0xfd, 0x7b, 0x6d, 0xc5, 0x75, 0xe0, 0x34, 0xce, 0x16, 0x89, 0xa8, 0x6c, 0x4d, 0x17,
0xc1, 0xea, 0x21, 0x94, 0xe3, 0xf9, 0x89, 0x8b, 0x20, 0x32, 0x14, 0xa5, 0xd8, 0x59, 0xdf, 0xe8,
0x36, 0xd9, 0x29, 0xfd, 0x95, 0x8c, 0xd2, 0xac, 0x5a, 0x68, 0xb7, 0x06, 0xb2, 0xaa, 0x9c, 0x76,
0x06, 0xad, 0x13, 0x19, 0x65, 0x3e, 0x28, 0x16, 0xfe, 0xb3, 0x86, 0x9e, 0x3f, 0x7f, 0xfe, 0x3c,
0x7d, 0x3f, 0x5b, 0x78, 0x1f, 0x5d, 0xaf, 0x7e, 0x9f, 0x86, 0x4a, 0xb2, 0x4e, 0xc7, 0x3f, 0x87,
0xcb, 0xe1, 0xa5, 0xda, 0xa3, 0xbe, 0xfa, 0xd4, 0x70, 0xf9, 0xc2, 0x99, 0x10, 0x51, 0xe9, 0x46,
0x53, 0xb7, 0x1d, 0xb0, 0xfa, 0xd4, 0xff, 0xd2, 0x70, 0xd9, 0xb2, 0x98, 0x10, 0x1f, 0xb7, 0xe1,
0xaa, 0x65, 0xab, 0x9e, 0x4f, 0x2c, 0x9d, 0xb8, 0xba, 0x3a, 0x7b, 0xce, 0x50, 0x89, 0xa6, 0x51,
0xcf, 0xb3, 0xc5, 0x81, 0x15, 0x59, 0x79, 0xd3, 0xb2, 0xfb, 0x01, 0x79, 0xb6, 0x93, 0xd7, 0x03,
0xea, 0x5c, 0x9a, 0x65, 0x56, 0xa5, 0xd9, 0x1b, 0x50, 0x9c, 0x10, 0x47, 0xa5, 0x96, 0xef, 0x9e,
0xf3, 0xea, 0xb2, 0xa0, 0x14, 0x26, 0xc4, 0x91, 0x59, 0xfb, 0xd5, 0xcd, 0x44, 0x32, 0x9a, 0x05,
0x54, 0xbc, 0x9f, 0x2d, 0x14, 0x11, 0x54, 0xff, 0x99, 0x81, 0x72, 0xbc, 0xda, 0x64, 0xc5, 0xbb,
0xc6, 0x4f, 0x96, 0x14, 0xdf, 0x7b, 0xde, 0x79, 0x61, 0x6d, 0x5a, 0x6b, 0xb0, 0x23, 0xe7, 0x30,
0x2f, 0x6a, 0x40, 0x45, 0x68, 0xb2, 0xe3, 0x9e, 0xed, 0x36, 0x54, 0xdc, 0x2c, 0x0a, 0x4a, 0xd0,
0xc2, 0xc7, 0x90, 0x7f, 0xe4, 0x71, 0xdb, 0x79, 0x6e, 0xfb, 0xdd, 0x17, 0xdb, 0xbe, 0xdf, 0xe7,
0xc6, 0x8b, 0xf7, 0xfb, 0x6a, 0xa7, 0xab, 0x9c, 0xd4, 0xdb, 0x4a, 0xa0, 0x8e, 0xaf, 0x40, 0xd6,
0x24, 0xdf, 0x9c, 0x27, 0x0f, 0x27, 0x0e, 0x5d, 0x74, 0x12, 0xae, 0x40, 0xf6, 0x29, 0x25, 0x8f,
0x93, 0x47, 0x02, 0x87, 0x5e, 0xe1, 0x62, 0xd8, 0x87, 0x1c, 0x8f, 0x17, 0x06, 0x08, 0x22, 0x86,
0x5e, 0xc3, 0x05, 0xc8, 0x36, 0xba, 0x0a, 0x5b, 0x10, 0x08, 0xca, 0x02, 0x55, 0x7b, 0x2d, 0xb9,
0x21, 0xa3, 0x74, 0xf5, 0x16, 0xe4, 0x45, 0x10, 0xd8, 0x62, 0x89, 0xc2, 0x80, 0x5e, 0x0b, 0x9a,
0x81, 0x8d, 0x54, 0x28, 0x3d, 0x3d, 0x39, 0x92, 0x15, 0x94, 0x4e, 0x4e, 0x75, 0x16, 0xe5, 0xaa,
0x1e, 0x94, 0xe3, 0xe5, 0xe6, 0x8f, 0x92, 0x65, 0xd5, 0xbf, 0xa5, 0xa0, 0x14, 0x2b, 0x1f, 0x59,
0xe1, 0x42, 0x4c, 0xd3, 0x7e, 0xaa, 0x12, 0xd3, 0x20, 0x5e, 0x90, 0x1a, 0xc0, 0xa1, 0x3a, 0x43,
0x2e, 0x3a, 0x75, 0x3f, 0xd2, 0x12, 0xc9, 0xa1, 0x7c, 0xf5, 0x4f, 0x29, 0x40, 0xf3, 0x05, 0xe8,
0x9c, 0x9b, 0xa9, 0x9f, 0xd2, 0xcd, 0xea, 0x1f, 0x53, 0x50, 0x49, 0x56, 0x9d, 0x73, 0xee, 0x5d,
0xfb, 0x49, 0xdd, 0xfb, 0x47, 0x1a, 0xd6, 0x13, 0xb5, 0xe6, 0x45, 0xbd, 0xfb, 0x1a, 0x36, 0x0d,
0x9d, 0x4e, 0x1c, 0xdb, 0xa7, 0x96, 0x76, 0xae, 0x9a, 0xf4, 0x09, 0x35, 0xa5, 0x2a, 0xdf, 0x34,
0xf6, 0x5f, 0x5c, 0xcd, 0xd6, 0x5a, 0x33, 0xbd, 0x36, 0x53, 0x3b, 0xdc, 0x6a, 0x35, 0xe5, 0x93,
0x5e, 0x77, 0x20, 0x77, 0x1a, 0x0f, 0xd5, 0xd3, 0xce, 0x2f, 0x3b, 0xdd, 0x2f, 0x3b, 0x0a, 0x32,
0xe6, 0x68, 0xaf, 0x70, 0xd9, 0xf7, 0x00, 0xcd, 0x3b, 0x85, 0x2f, 0xc3, 0x32, 0xb7, 0xd0, 0x6b,
0x78, 0x0b, 0x36, 0x3a, 0x5d, 0xb5, 0xdf, 0x6a, 0xca, 0xaa, 0x7c, 0xef, 0x9e, 0xdc, 0x18, 0xf4,
0xc5, 0xf5, 0x3e, 0x62, 0x0f, 0x12, 0x0b, 0xbc, 0xfa, 0x87, 0x0c, 0x6c, 0x2d, 0xf1, 0x04, 0xd7,
0x83, 0x9b, 0x85, 0xb8, 0xec, 0x7c, 0x74, 0x11, 0xef, 0x6b, 0xac, 0x20, 0xe8, 0x11, 0xd7, 0x0f,
0x2e, 0x22, 0x37, 0x80, 0x45, 0xc9, 0xf2, 0x8d, 0xa1, 0x41, 0xdd, 0xe0, 0x35, 0x44, 0x5c, 0x37,
0x36, 0x66, 0xb8, 0x78, 0x10, 0xf9, 0x19, 0x60, 0xc7, 0xf6, 0x0c, 0xdf, 0x78, 0x42, 0x55, 0xc3,
0x0a, 0x9f, 0x4e, 0xd8, 0xf5, 0x23, 0xab, 0xa0, 0x50, 0xd2, 0xb2, 0xfc, 0x88, 0x6d, 0xd1, 0x11,
0x99, 0x63, 0xb3, 0xcd, 0x3c, 0xa3, 0xa0, 0x50, 0x12, 0xb1, 0xaf, 0x41, 0x59, 0xb7, 0xa7, 0xac,
0x26, 0x13, 0x3c, 0x76, 0x76, 0xa4, 0x94, 0x92, 0xc0, 0x22, 0x4a, 0x50, 0x6d, 0xcf, 0xde, 0x6c,
0xca, 0x4a, 0x49, 0x60, 0x82, 0x72, 0x1d, 0x36, 0xc8, 0x68, 0xe4, 0x32, 0xe3, 0xa1, 0x21, 0x71,
0x7f, 0xa8, 0x44, 0x30, 0x27, 0xee, 0xdc, 0x87, 0x42, 0x18, 0x07, 0x76, 0x54, 0xb3, 0x48, 0xa8,
0x8e, 0x78, 0x39, 0x4b, 0xef, 0x15, 0x95, 0x82, 0x15, 0x0a, 0xaf, 0x41, 0xd9, 0xf0, 0xd4, 0xd9,
0x13, 0x6e, 0x7a, 0x37, 0xbd, 0x57, 0x50, 0x4a, 0x86, 0x17, 0xbd, 0xd9, 0x55, 0xbf, 0x4b, 0x43,
0x25, 0xf9, 0x04, 0x8d, 0x9b, 0x50, 0x30, 0x6d, 0x8d, 0xf0, 0xd4, 0x12, 0xdf, 0x3f, 0xf6, 0x5e,
0xf2, 0x6a, 0x5d, 0x6b, 0x07, 0x7c, 0x25, 0xd2, 0xdc, 0xf9, 0x7b, 0x0a, 0x0a, 0x21, 0x8c, 0x2f,
0x41, 0xd6, 0x21, 0xfe, 0x98, 0x9b, 0xcb, 0x1d, 0xa5, 0x51, 0x4a, 0xe1, 0x6d, 0x86, 0x7b, 0x0e,
0xb1, 0x78, 0x0a, 0x04, 0x38, 0x6b, 0xb3, 0x79, 0x35, 0x29, 0xd1, 0xf9, 0xe5, 0xc4, 0x9e, 0x4c,
0xa8, 0xe5, 0x7b, 0xe1, 0xbc, 0x06, 0x78, 0x23, 0x80, 0xf1, 0x87, 0xb0, 0xe9, 0xbb, 0xc4, 0x30,
0x13, 0xdc, 0x2c, 0xe7, 0xa2, 0x50, 0x10, 0x91, 0x0f, 0xe1, 0x4a, 0x68, 0x57, 0xa7, 0x3e, 0xd1,
0xc6, 0x54, 0x9f, 0x29, 0xe5, 0xf9, 0xfb, 0xe6, 0xe5, 0x80, 0xd0, 0x0c, 0xe4, 0xa1, 0x6e, 0xf5,
0xfb, 0x14, 0x6c, 0x86, 0xd7, 0x29, 0x3d, 0x0a, 0xd6, 0x09, 0x00, 0xb1, 0x2c, 0xdb, 0x8f, 0x87,
0x6b, 0x31, 0x95, 0x17, 0xf4, 0x6a, 0xf5, 0x48, 0x49, 0x89, 0x19, 0xd8, 0x99, 0x00, 0xcc, 0x24,
0x2b, 0xc3, 0x76, 0x15, 0x4a, 0xc1, 0xf7, 0x05, 0xfe, 0x91, 0x4a, 0x5c, 0xc0, 0x41, 0x40, 0xec,
0xde, 0x85, 0xb7, 0x21, 0x77, 0x46, 0x47, 0x86, 0x15, 0xbc, 0x7a, 0x8a, 0x46, 0xf8, 0x96, 0x9a,
0x8d, 0xde, 0x52, 0x8f, 0x7e, 0x97, 0x82, 0x2d, 0xcd, 0x9e, 0xcc, 0xfb, 0x7b, 0x84, 0xe6, 0x5e,
0x01, 0xbc, 0x2f, 0x52, 0x5f, 0xdd, 0x1d, 0x19, 0xfe, 0x78, 0x7a, 0x56, 0xd3, 0xec, 0xc9, 0xfe,
0xc8, 0x36, 0x89, 0x35, 0x9a, 0x7d, 0x65, 0xe3, 0x7f, 0xb4, 0x8f, 0x46, 0xd4, 0xfa, 0x68, 0x64,
0xc7, 0xbe, 0xb9, 0x7d, 0x3e, 0xfb, 0xfb, 0x6d, 0x3a, 0x73, 0xdc, 0x3b, 0xfa, 0x73, 0x7a, 0xe7,
0x58, 0xf4, 0xd5, 0x0b, 0x63, 0xa3, 0xd0, 0xa1, 0x49, 0x35, 0x36, 0xde, 0xff, 0x05, 0x00, 0x00,
0xff, 0xff, 0xa2, 0xc3, 0x4e, 0x18, 0xbe, 0x1b, 0x00, 0x00,
0x30, 0x37, 0x24, 0xa6, 0x47, 0x95, 0x0d, 0x21, 0xee, 0x87, 0x52, 0xa6, 0xc1, 0xcf, 0x38, 0x37,
0xa6, 0x91, 0x4f, 0x68, 0x08, 0x71, 0xa4, 0x51, 0xfd, 0xb6, 0x00, 0xa5, 0x58, 0x59, 0x8a, 0x6f,
0x40, 0xf9, 0x21, 0x79, 0x4c, 0xd4, 0xf0, 0xaa, 0x21, 0x22, 0x51, 0x62, 0x58, 0x2f, 0xb8, 0x6e,
0xbc, 0x07, 0xdb, 0x9c, 0x62, 0x4f, 0x7d, 0xea, 0xaa, 0x9a, 0x49, 0x3c, 0x8f, 0x07, 0xad, 0xc0,
0xa9, 0x98, 0xc9, 0xba, 0x4c, 0xd4, 0x08, 0x25, 0xf8, 0x2e, 0x6c, 0x71, 0x8d, 0xc9, 0xd4, 0xf4,
0x0d, 0xc7, 0xa4, 0x2a, 0xbb, 0xfc, 0x78, 0x7c, 0x23, 0x8e, 0x3c, 0xdb, 0x64, 0x8c, 0xd3, 0x80,
0xc0, 0x3c, 0xf2, 0x70, 0x13, 0x5e, 0xe3, 0x6a, 0x23, 0x6a, 0x51, 0x97, 0xf8, 0x54, 0xa5, 0x5f,
0x4e, 0x89, 0xe9, 0xa9, 0xc4, 0xd2, 0xd5, 0x31, 0xf1, 0xc6, 0xd2, 0x36, 0x33, 0x70, 0x94, 0x96,
0x52, 0xca, 0x35, 0x46, 0x3c, 0x0e, 0x78, 0x32, 0xa7, 0xd5, 0x2d, 0xfd, 0x13, 0xe2, 0x8d, 0xf1,
0x21, 0x5c, 0xe1, 0x56, 0x3c, 0xdf, 0x35, 0xac, 0x91, 0xaa, 0x8d, 0xa9, 0xf6, 0x48, 0x9d, 0xfa,
0xc3, 0xfb, 0xd2, 0x2b, 0xf1, 0xfe, 0xb9, 0x87, 0x7d, 0xce, 0x69, 0x30, 0xca, 0x99, 0x3f, 0xbc,
0x8f, 0xfb, 0x50, 0x66, 0x93, 0x31, 0x31, 0xbe, 0xa2, 0xea, 0xd0, 0x76, 0xf9, 0xc9, 0x52, 0x59,
0xb2, 0xb2, 0x63, 0x11, 0xac, 0x75, 0x03, 0x85, 0x53, 0x5b, 0xa7, 0x87, 0xb9, 0x7e, 0x4f, 0x96,
0x9b, 0x4a, 0x29, 0xb4, 0xf2, 0xc0, 0x76, 0x59, 0x42, 0x8d, 0xec, 0x28, 0xc0, 0x25, 0x91, 0x50,
0x23, 0x3b, 0x0c, 0xef, 0x5d, 0xd8, 0xd2, 0x34, 0x31, 0x66, 0x43, 0x53, 0x83, 0x2b, 0x8a, 0x27,
0xa1, 0x44, 0xb0, 0x34, 0xed, 0x58, 0x10, 0x82, 0x1c, 0xf7, 0xf0, 0x87, 0xf0, 0xf2, 0x2c, 0x58,
0x71, 0xc5, 0xcd, 0x85, 0x51, 0xce, 0xab, 0xde, 0x85, 0x2d, 0xe7, 0x62, 0x51, 0x11, 0x27, 0x7a,
0x74, 0x2e, 0xe6, 0xd5, 0x3e, 0x80, 0x6d, 0x67, 0xec, 0x2c, 0xea, 0xdd, 0x8e, 0xeb, 0x61, 0x67,
0xec, 0xcc, 0x2b, 0xbe, 0xc5, 0xef, 0xab, 0x2e, 0xd5, 0x88, 0x4f, 0x75, 0xe9, 0x6a, 0x9c, 0x1e,
0x13, 0xe0, 0x7d, 0x40, 0x9a, 0xa6, 0x52, 0x8b, 0x9c, 0x9b, 0x54, 0x25, 0x2e, 0xb5, 0x88, 0x27,
0x5d, 0x8f, 0x93, 0x2b, 0x9a, 0x26, 0x73, 0x69, 0x9d, 0x0b, 0xf1, 0x6d, 0xd8, 0xb4, 0xcf, 0x1f,
0x6a, 0x22, 0x25, 0x55, 0xc7, 0xa5, 0x43, 0xe3, 0xa9, 0xf4, 0x26, 0x8f, 0xef, 0x06, 0x13, 0xf0,
0x84, 0xec, 0x71, 0x18, 0xdf, 0x02, 0xa4, 0x79, 0x63, 0xe2, 0x3a, 0xbc, 0x26, 0xf0, 0x1c, 0xa2,
0x51, 0xe9, 0x2d, 0x41, 0x15, 0x78, 0x27, 0x84, 0xd9, 0x92, 0xf0, 0x9e, 0x18, 0x43, 0x3f, 0xb4,
0x78, 0x53, 0x2c, 0x09, 0x8e, 0x05, 0xd6, 0xf6, 0x00, 0xb1, 0x50, 0x24, 0x3a, 0xde, 0xe3, 0xb4,
0x8a, 0x33, 0x76, 0xe2, 0xfd, 0xbe, 0x01, 0xeb, 0x8c, 0x39, 0xeb, 0xf4, 0x96, 0xa8, 0x67, 0x9c,
0x71, 0xac, 0xc7, 0x1f, 0xad, 0xb4, 0xac, 0x1e, 0x42, 0x39, 0x9e, 0x9f, 0xb8, 0x08, 0x22, 0x43,
0x51, 0x8a, 0x9d, 0xf5, 0x8d, 0x6e, 0x93, 0x9d, 0xd2, 0x5f, 0xc8, 0x28, 0xcd, 0xaa, 0x85, 0x76,
0x6b, 0x20, 0xab, 0xca, 0x59, 0x67, 0xd0, 0x3a, 0x95, 0x51, 0x26, 0x56, 0x96, 0x9e, 0x64, 0x0b,
0x6f, 0xa3, 0x9b, 0xd5, 0xef, 0xd2, 0x50, 0x49, 0xde, 0x33, 0xf0, 0xcf, 0xe1, 0x6a, 0xf8, 0x28,
0xe0, 0x51, 0x5f, 0x7d, 0x62, 0xb8, 0x7c, 0xe1, 0x4c, 0x88, 0xa8, 0xb3, 0xa3, 0xa9, 0xdb, 0x0e,
0x58, 0x7d, 0xea, 0x7f, 0x6a, 0xb8, 0x6c, 0x59, 0x4c, 0x88, 0x8f, 0xdb, 0x70, 0xdd, 0xb2, 0x55,
0xcf, 0x27, 0x96, 0x4e, 0x5c, 0x5d, 0x9d, 0x3d, 0xc7, 0xa8, 0x44, 0xd3, 0xa8, 0xe7, 0xd9, 0xe2,
0xc0, 0x8a, 0xac, 0xbc, 0x6a, 0xd9, 0xfd, 0x80, 0x3c, 0xdb, 0xc9, 0xeb, 0x01, 0x75, 0x2e, 0xcd,
0x32, 0xab, 0xd2, 0xec, 0x15, 0x28, 0x4e, 0x88, 0xa3, 0x52, 0xcb, 0x77, 0x2f, 0x78, 0x75, 0x59,
0x50, 0x0a, 0x13, 0xe2, 0xc8, 0xac, 0xfd, 0x42, 0x8a, 0xfc, 0x93, 0x6c, 0xa1, 0x80, 0x8a, 0x27,
0xd9, 0x42, 0x11, 0x41, 0xf5, 0x5f, 0x19, 0x28, 0xc7, 0xab, 0x4d, 0x56, 0xbc, 0x6b, 0xfc, 0x64,
0x49, 0xf1, 0xbd, 0xe7, 0x8d, 0xef, 0xad, 0x4d, 0x6b, 0x0d, 0x76, 0xe4, 0x1c, 0xe6, 0x45, 0x0d,
0xa8, 0x08, 0x4d, 0x76, 0xdc, 0xb3, 0xdd, 0x86, 0x8a, 0x7b, 0x4d, 0x41, 0x09, 0x5a, 0xf8, 0x18,
0xf2, 0x0f, 0x3d, 0x6e, 0x3b, 0xcf, 0x6d, 0xbf, 0xf9, 0xfd, 0xb6, 0x4f, 0xfa, 0xdc, 0x78, 0xf1,
0xa4, 0xaf, 0x76, 0xba, 0xca, 0x69, 0xbd, 0xad, 0x04, 0xea, 0xf8, 0x1a, 0x64, 0x4d, 0xf2, 0xd5,
0x45, 0xf2, 0x70, 0xe2, 0xd0, 0x65, 0x27, 0xe1, 0x1a, 0x64, 0x9f, 0x50, 0xf2, 0x28, 0x79, 0x24,
0x70, 0xe8, 0x47, 0x5c, 0x0c, 0xfb, 0x90, 0xe3, 0xf1, 0xc2, 0x00, 0x41, 0xc4, 0xd0, 0x4b, 0xb8,
0x00, 0xd9, 0x46, 0x57, 0x61, 0x0b, 0x02, 0x41, 0x59, 0xa0, 0x6a, 0xaf, 0x25, 0x37, 0x64, 0x94,
0xae, 0xde, 0x85, 0xbc, 0x08, 0x02, 0x5b, 0x2c, 0x51, 0x18, 0xd0, 0x4b, 0x41, 0x33, 0xb0, 0x91,
0x0a, 0xa5, 0x67, 0xa7, 0x47, 0xb2, 0x82, 0xd2, 0xc9, 0xa9, 0xce, 0xa2, 0x5c, 0xd5, 0x83, 0x72,
0xbc, 0xdc, 0x7c, 0x31, 0x57, 0xc9, 0xbf, 0xa7, 0xa0, 0x14, 0x2b, 0x1f, 0x59, 0xe1, 0x42, 0x4c,
0xd3, 0x7e, 0xa2, 0x12, 0xd3, 0x20, 0x5e, 0x90, 0x1a, 0xc0, 0xa1, 0x3a, 0x43, 0x2e, 0x3b, 0x75,
0x2f, 0x68, 0x89, 0xe4, 0x50, 0xbe, 0xfa, 0x97, 0x14, 0xa0, 0xf9, 0x02, 0x74, 0xce, 0xcd, 0xd4,
0x4f, 0xe9, 0x66, 0xf5, 0xcf, 0x29, 0xa8, 0x24, 0xab, 0xce, 0x39, 0xf7, 0x6e, 0xfc, 0xa4, 0xee,
0xfd, 0x33, 0x0d, 0xeb, 0x89, 0x5a, 0xf3, 0xb2, 0xde, 0x7d, 0x09, 0x9b, 0x86, 0x4e, 0x27, 0x8e,
0xed, 0x53, 0x4b, 0xbb, 0x50, 0x4d, 0xfa, 0x98, 0x9a, 0x52, 0x95, 0x6f, 0x1a, 0xfb, 0xdf, 0x5f,
0xcd, 0xd6, 0x5a, 0x33, 0xbd, 0x36, 0x53, 0x3b, 0xdc, 0x6a, 0x35, 0xe5, 0xd3, 0x5e, 0x77, 0x20,
0x77, 0x1a, 0x9f, 0xab, 0x67, 0x9d, 0x5f, 0x75, 0xba, 0x9f, 0x76, 0x14, 0x64, 0xcc, 0xd1, 0x7e,
0xc4, 0x65, 0xdf, 0x03, 0x34, 0xef, 0x14, 0xbe, 0x0a, 0xcb, 0xdc, 0x42, 0x2f, 0xe1, 0x2d, 0xd8,
0xe8, 0x74, 0xd5, 0x7e, 0xab, 0x29, 0xab, 0xf2, 0x83, 0x07, 0x72, 0x63, 0xd0, 0x17, 0xd7, 0xfb,
0x88, 0x3d, 0x48, 0x2c, 0xf0, 0xea, 0x9f, 0x32, 0xb0, 0xb5, 0xc4, 0x13, 0x5c, 0x0f, 0x6e, 0x16,
0xe2, 0xb2, 0xf3, 0xee, 0x65, 0xbc, 0xaf, 0xb1, 0x82, 0xa0, 0x47, 0x5c, 0x3f, 0xb8, 0x88, 0xdc,
0x02, 0x16, 0x25, 0xcb, 0x37, 0x86, 0x06, 0x75, 0x83, 0xd7, 0x10, 0x71, 0xdd, 0xd8, 0x98, 0xe1,
0xe2, 0x41, 0xe4, 0x67, 0x80, 0x1d, 0xdb, 0x33, 0x7c, 0xe3, 0x31, 0x55, 0x0d, 0x2b, 0x7c, 0x3a,
0x61, 0xd7, 0x8f, 0xac, 0x82, 0x42, 0x49, 0xcb, 0xf2, 0x23, 0xb6, 0x45, 0x47, 0x64, 0x8e, 0xcd,
0x36, 0xf3, 0x8c, 0x82, 0x42, 0x49, 0xc4, 0xbe, 0x01, 0x65, 0xdd, 0x9e, 0xb2, 0x9a, 0x4c, 0xf0,
0xd8, 0xd9, 0x91, 0x52, 0x4a, 0x02, 0x8b, 0x28, 0x41, 0xb5, 0x3d, 0x7b, 0xb3, 0x29, 0x2b, 0x25,
0x81, 0x09, 0xca, 0x4d, 0xd8, 0x20, 0xa3, 0x91, 0xcb, 0x8c, 0x87, 0x86, 0xc4, 0xfd, 0xa1, 0x12,
0xc1, 0x9c, 0xb8, 0x73, 0x02, 0x85, 0x30, 0x0e, 0xec, 0xa8, 0x66, 0x91, 0x50, 0x1d, 0xf1, 0x6e,
0x97, 0xde, 0x2b, 0x2a, 0x05, 0x2b, 0x14, 0xde, 0x80, 0xb2, 0xe1, 0xa9, 0xb3, 0x27, 0xe8, 0xf4,
0x6e, 0x7a, 0xaf, 0xa0, 0x94, 0x0c, 0x2f, 0x7a, 0xbe, 0xab, 0x7e, 0x93, 0x86, 0x4a, 0xf2, 0x09,
0x1d, 0x37, 0xa1, 0x60, 0xda, 0x1a, 0xe1, 0xa9, 0x25, 0xbe, 0xdf, 0xec, 0x3d, 0xe7, 0xd5, 0xbd,
0xd6, 0x0e, 0xf8, 0x4a, 0xa4, 0xb9, 0xf3, 0x8f, 0x14, 0x14, 0x42, 0x18, 0x5f, 0x81, 0xac, 0x43,
0xfc, 0x31, 0x37, 0x97, 0x3b, 0x4a, 0xa3, 0x94, 0xc2, 0xdb, 0x0c, 0xf7, 0x1c, 0x62, 0xf1, 0x14,
0x08, 0x70, 0xd6, 0x66, 0xf3, 0x6a, 0x52, 0xa2, 0xf3, 0xcb, 0x89, 0x3d, 0x99, 0x50, 0xcb, 0xf7,
0xc2, 0x79, 0x0d, 0xf0, 0x46, 0x00, 0xe3, 0x77, 0x60, 0xd3, 0x77, 0x89, 0x61, 0x26, 0xb8, 0x59,
0xce, 0x45, 0xa1, 0x20, 0x22, 0x1f, 0xc2, 0xb5, 0xd0, 0xae, 0x4e, 0x7d, 0xa2, 0x8d, 0xa9, 0x3e,
0x53, 0xca, 0xf3, 0xf7, 0xd9, 0xab, 0x01, 0xa1, 0x19, 0xc8, 0x43, 0xdd, 0xea, 0x77, 0x29, 0xd8,
0x0c, 0xaf, 0x53, 0x7a, 0x14, 0xac, 0x53, 0x00, 0x62, 0x59, 0xb6, 0x1f, 0x0f, 0xd7, 0x62, 0x2a,
0x2f, 0xe8, 0xd5, 0xea, 0x91, 0x92, 0x12, 0x33, 0xb0, 0x33, 0x01, 0x98, 0x49, 0x56, 0x86, 0xed,
0x3a, 0x94, 0x82, 0xef, 0x23, 0xfc, 0x23, 0x9b, 0xb8, 0x80, 0x83, 0x80, 0xd8, 0xbd, 0x0b, 0x6f,
0x43, 0xee, 0x9c, 0x8e, 0x0c, 0x2b, 0x78, 0xf5, 0x14, 0x8d, 0xf0, 0x25, 0x37, 0x1b, 0xbd, 0xe4,
0x1e, 0xfd, 0x21, 0x05, 0x5b, 0x9a, 0x3d, 0x99, 0xf7, 0xf7, 0x08, 0xcd, 0xbd, 0x02, 0x78, 0x9f,
0xa4, 0xbe, 0xf8, 0x78, 0x64, 0xf8, 0xe3, 0xe9, 0x79, 0x4d, 0xb3, 0x27, 0xfb, 0x23, 0xdb, 0x24,
0xd6, 0x68, 0xf6, 0x95, 0x90, 0xff, 0xd1, 0xde, 0x1d, 0x51, 0xeb, 0xdd, 0x91, 0x1d, 0xfb, 0x66,
0xf8, 0xd1, 0xec, 0xef, 0xd7, 0xe9, 0xcc, 0x71, 0xef, 0xe8, 0xaf, 0xe9, 0x9d, 0x63, 0xd1, 0x57,
0x2f, 0x8c, 0x8d, 0x42, 0x87, 0x26, 0xd5, 0xd8, 0x78, 0xff, 0x17, 0x00, 0x00, 0xff, 0xff, 0x0c,
0xab, 0xb6, 0x37, 0x7e, 0x1c, 0x00, 0x00,
}

View File

@ -101,6 +101,8 @@ message DescriptorProto {
message ExtensionRange {
optional int32 start = 1;
optional int32 end = 2;
optional ExtensionRangeOptions options = 3;
}
repeated ExtensionRange extension_range = 5;
@ -121,6 +123,14 @@ message DescriptorProto {
repeated string reserved_name = 10;
}
message ExtensionRangeOptions {
// The parser stores options it doesn't recognize here. See above.
repeated UninterpretedOption uninterpreted_option = 999;
// Clients can define custom options in extensions of this message. See above.
extensions 1000 to max;
}
// Describes a field within a message.
message FieldDescriptorProto {
enum Type {
@ -351,7 +361,7 @@ message FileOptions {
optional bool cc_generic_services = 16 [default=false];
optional bool java_generic_services = 17 [default=false];
optional bool py_generic_services = 18 [default=false];
optional bool php_generic_services = 19 [default=false];
optional bool php_generic_services = 42 [default=false];
// Is this file deprecated?
// Depending on the target platform, this can emit Deprecated annotations
@ -483,13 +493,15 @@ message FieldOptions {
// The jstype option determines the JavaScript type used for values of the
// field. The option is permitted only for 64 bit integral and fixed types
// (int64, uint64, sint64, fixed64, sfixed64). By default these types are
// represented as JavaScript strings. This avoids loss of precision that can
// happen when a large value is converted to a floating point JavaScript
// numbers. Specifying JS_NUMBER for the jstype causes the generated
// JavaScript code to use the JavaScript "number" type instead of strings.
// This option is an enum to permit additional types to be added,
// e.g. goog.math.Integer.
// (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING
// is represented as JavaScript string, which avoids loss of precision that
// can happen when a large value is converted to a floating point JavaScript.
// Specifying JS_NUMBER for the jstype causes the generated JavaScript code to
// use the JavaScript "number" type. The behavior of the default option
// JS_NORMAL is implementation dependent.
//
// This option is an enum to permit additional types to be added, e.g.
// goog.math.Integer.
optional JSType jstype = 6 [default = JS_NORMAL];
enum JSType {
// Use the default type.

View File

@ -1984,7 +1984,7 @@ func (g *Generator) generateMessage(message *Descriptor) {
case typename == "string":
def = strconv.Quote(def)
case typename == "[]byte":
def = "[]byte(" + strconv.Quote(def) + ")"
def = "[]byte(" + strconv.Quote(unescape(def)) + ")"
kind = "var "
case def == "inf", def == "-inf", def == "nan":
// These names are known to, and defined by, the protocol language.
@ -2508,6 +2508,67 @@ func (g *Generator) generateMessage(message *Descriptor) {
g.addInitf("%s.RegisterType((*%s)(nil), %q)", g.Pkg["proto"], ccTypeName, fullName)
}
var escapeChars = [256]byte{
'a': '\a', 'b': '\b', 'f': '\f', 'n': '\n', 'r': '\r', 't': '\t', 'v': '\v', '\\': '\\', '"': '"', '\'': '\'', '?': '?',
}
// unescape reverses the "C" escaping that protoc does for default values of bytes fields.
// It is best effort in that it effectively ignores malformed input. Seemingly invalid escape
// sequences are conveyed, unmodified, into the decoded result.
func unescape(s string) string {
// NB: Sadly, we can't use strconv.Unquote because protoc will escape both
// single and double quotes, but strconv.Unquote only allows one or the
// other (based on actual surrounding quotes of its input argument).
var out []byte
for len(s) > 0 {
// regular character, or too short to be valid escape
if s[0] != '\\' || len(s) < 2 {
out = append(out, s[0])
s = s[1:]
} else if c := escapeChars[s[1]]; c != 0 {
// escape sequence
out = append(out, c)
s = s[2:]
} else if s[1] == 'x' || s[1] == 'X' {
// hex escape, e.g. "\x80
if len(s) < 4 {
// too short to be valid
out = append(out, s[:2]...)
s = s[2:]
continue
}
v, err := strconv.ParseUint(s[2:4], 16, 8)
if err != nil {
out = append(out, s[:4]...)
} else {
out = append(out, byte(v))
}
s = s[4:]
} else if '0' <= s[1] && s[1] <= '7' {
// octal escape, can vary from 1 to 3 octal digits; e.g., "\0" "\40" or "\164"
// so consume up to 2 more bytes or up to end-of-string
n := len(s[1:]) - len(strings.TrimLeft(s[1:], "01234567"))
if n > 3 {
n = 3
}
v, err := strconv.ParseUint(s[1:1+n], 8, 8)
if err != nil {
out = append(out, s[:1+n]...)
} else {
out = append(out, byte(v))
}
s = s[1+n:]
} else {
// bad escape, just propagate the slash as-is
out = append(out, s[0])
s = s[1:]
}
}
return string(out)
}
func (g *Generator) generateExtension(ext *ExtensionDescriptor) {
ccTypeName := ext.DescName()

View File

@ -83,3 +83,32 @@ func TestGoPackageOption(t *testing.T) {
}
}
}
func TestUnescape(t *testing.T) {
tests := []struct {
in string
out string
}{
// successful cases, including all kinds of escapes
{"", ""},
{"foo bar baz frob nitz", "foo bar baz frob nitz"},
{`\000\001\002\003\004\005\006\007`, string([]byte{0, 1, 2, 3, 4, 5, 6, 7})},
{`\a\b\f\n\r\t\v\\\?\'\"`, string([]byte{'\a', '\b', '\f', '\n', '\r', '\t', '\v', '\\', '?', '\'', '"'})},
{`\x10\x20\x30\x40\x50\x60\x70\x80`, string([]byte{16, 32, 48, 64, 80, 96, 112, 128})},
// variable length octal escapes
{`\0\018\222\377\3\04\005\6\07`, string([]byte{0, 1, '8', 0222, 255, 3, 4, 5, 6, 7})},
// malformed escape sequences left as is
{"foo \\g bar", "foo \\g bar"},
{"foo \\xg0 bar", "foo \\xg0 bar"},
{"\\", "\\"},
{"\\x", "\\x"},
{"\\xf", "\\xf"},
{"\\777", "\\777"}, // overflows byte
}
for _, tc := range tests {
s := unescape(tc.in)
if s != tc.out {
t.Errorf("doUnescape(%q) = %q; should have been %q", tc.in, s, tc.out)
}
}
}

View File

@ -91,6 +91,7 @@ message CodeGeneratorRequest {
// The version number of protocol compiler.
optional Version compiler_version = 3;
}
// The plugin writes an encoded CodeGeneratorResponse to stdout.

View File

@ -62,6 +62,16 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
// any.Unpack(foo)
// ...
//
// Example 4: Pack and unpack a message in Go
//
// foo := &pb.Foo{...}
// any, err := ptypes.MarshalAny(foo)
// ...
// foo := &pb.Foo{}
// if err := ptypes.UnmarshalAny(any, foo); err != nil {
// ...
// }
//
// The pack methods provided by protobuf library will by default use
// 'type.googleapis.com/full.type.name' as the type URL and the unpack
// methods only use the fully qualified type name after the last '/'

View File

@ -74,6 +74,16 @@ option objc_class_prefix = "GPB";
// any.Unpack(foo)
// ...
//
// Example 4: Pack and unpack a message in Go
//
// foo := &pb.Foo{...}
// any, err := ptypes.MarshalAny(foo)
// ...
// foo := &pb.Foo{}
// if err := ptypes.UnmarshalAny(any, foo); err != nil {
// ...
// }
//
// The pack methods provided by protobuf library will by default use
// 'type.googleapis.com/full.type.name' as the type URL and the unpack
// methods only use the fully qualified type name after the last '/'

View File

@ -257,7 +257,7 @@ func (c *Client) RevokeCert(ctx context.Context, key crypto.Signer, cert []byte,
func AcceptTOS(tosURL string) bool { return true }
// Register creates a new account registration by following the "new-reg" flow.
// It returns registered account. The a argument is not modified.
// It returns registered account. The account is not modified.
//
// The registration may require the caller to agree to the CA's Terms of Service (TOS).
// If so, and the account has not indicated the acceptance of the terms (see Account for details),

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// We have a implementation in amd64 assembly so this code is only run on
// We have an implementation in amd64 assembly so this code is only run on
// non-amd64 platforms. The amd64 assembly does not support gccgo.
// +build !amd64 gccgo appengine

View File

@ -228,7 +228,7 @@ func TestECDSASignerPrivateKey(t *testing.T) {
priv := NewSignerPrivateKey(time.Now(), &ecdsaSigner{ecdsaPriv})
if priv.PubKeyAlgo != PubKeyAlgoECDSA {
t.Fatal("NewSignerPrivateKey should have made a ECSDA private key")
t.Fatal("NewSignerPrivateKey should have made an ECSDA private key")
}
sig := &Signature{

View File

@ -124,7 +124,7 @@ func pbDecrypt(info decryptable, password []byte) (decrypted []byte, err error)
return
}
// decryptable abstracts a object that contains ciphertext.
// decryptable abstracts an object that contains ciphertext.
type decryptable interface {
Algorithm() pkix.AlgorithmIdentifier
Data() []byte

View File

@ -19,7 +19,7 @@ import (
"golang.org/x/crypto/ssh"
)
// startOpenSSHAgent executes ssh-agent, and returns a Agent interface to it.
// startOpenSSHAgent executes ssh-agent, and returns an Agent interface to it.
func startOpenSSHAgent(t *testing.T) (client Agent, socket string, cleanup func()) {
if testing.Short() {
// ssh-agent is not always available, and the key

View File

@ -349,7 +349,7 @@ func handleAuthResponse(c packetConn) (bool, []string, error) {
// both CLI and GUI environments.
type KeyboardInteractiveChallenge func(user, instruction string, questions []string, echos []bool) (answers []string, err error)
// KeyboardInteractive returns a AuthMethod using a prompt/response
// KeyboardInteractive returns an AuthMethod using a prompt/response
// sequence controlled by the server.
func KeyboardInteractive(challenge KeyboardInteractiveChallenge) AuthMethod {
return challenge

View File

@ -52,10 +52,12 @@ var isSpecialElementMap = map[string]bool{
"iframe": true,
"img": true,
"input": true,
"isindex": true,
"isindex": true, // The 'isindex' element has been removed, but keep it for backwards compatibility.
"keygen": true,
"li": true,
"link": true,
"listing": true,
"main": true,
"marquee": true,
"menu": true,
"meta": true,

View File

@ -167,7 +167,7 @@ type options struct {
bidirule func(s string) bool
}
// A Profile defines the configuration of a IDNA mapper.
// A Profile defines the configuration of an IDNA mapper.
type Profile struct {
options
}

View File

@ -37,7 +37,7 @@ import (
const (
// These sum of these four values must be no greater than 32.
nodesBitsChildren = 9
nodesBitsChildren = 10
nodesBitsICANN = 1
nodesBitsTextOffset = 15
nodesBitsTextLength = 6

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -69,7 +69,7 @@ var lockTestDurations = []time.Duration{
// lockTestNames are the names of a set of mutually compatible locks. For each
// name fragment:
// - _ means no explicit lock.
// - i means a infinite-depth lock,
// - i means an infinite-depth lock,
// - z means a zero-depth lock,
var lockTestNames = []string{
"/_/_/_/_/z",

49
vendor/golang.org/x/sys/unix/dev_solaris_test.go generated vendored Normal file
View File

@ -0,0 +1,49 @@
// Copyright 2017 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package unix_test
import (
"fmt"
"testing"
"golang.org/x/sys/unix"
)
func TestDevices(t *testing.T) {
testCases := []struct {
path string
major uint32
minor uint32
}{
// Well-known major/minor numbers on OpenSolaris according to
// /etc/name_to_major
{"/dev/zero", 134, 12},
{"/dev/null", 134, 2},
{"/dev/ptyp0", 172, 0},
{"/dev/ttyp0", 175, 0},
{"/dev/ttyp1", 175, 1},
}
for _, tc := range testCases {
t.Run(fmt.Sprintf("%s %v:%v", tc.path, tc.major, tc.minor), func(t *testing.T) {
var stat unix.Stat_t
err := unix.Stat(tc.path, &stat)
if err != nil {
t.Errorf("failed to stat device: %v", err)
return
}
dev := uint64(stat.Rdev)
if unix.Major(dev) != tc.major {
t.Errorf("for %s Major(%#x) == %d, want %d", tc.path, dev, unix.Major(dev), tc.major)
}
if unix.Minor(dev) != tc.minor {
t.Errorf("for %s Minor(%#x) == %d, want %d", tc.path, dev, unix.Minor(dev), tc.minor)
}
if unix.Mkdev(tc.major, tc.minor) != dev {
t.Errorf("for %s Mkdev(%d, %d) == %#x, want %#x", tc.path, tc.major, tc.minor, unix.Mkdev(tc.major, tc.minor), dev)
}
})
}
}

View File

@ -283,6 +283,7 @@ includes_SunOS='
#include <sys/mman.h>
#include <sys/wait.h>
#include <sys/ioctl.h>
#include <sys/mkdev.h>
#include <net/bpf.h>
#include <net/if.h>
#include <net/if_arp.h>
@ -347,6 +348,7 @@ ccflags="$@"
$2 !~ /^EXPR_/ &&
$2 ~ /^E[A-Z0-9_]+$/ ||
$2 ~ /^B[0-9_]+$/ ||
$2 ~ /^(OLD|NEW)DEV$/ ||
$2 == "BOTHER" ||
$2 ~ /^CI?BAUD(EX)?$/ ||
$2 == "IBSHIFT" ||

View File

@ -514,6 +514,24 @@ func Acct(path string) (err error) {
return acct(pathp)
}
//sys __makedev(version int, major uint, minor uint) (val uint64)
func Mkdev(major, minor uint32) uint64 {
return __makedev(NEWDEV, uint(major), uint(minor))
}
//sys __major(version int, dev uint64) (val uint)
func Major(dev uint64) uint32 {
return uint32(__major(NEWDEV, dev))
}
//sys __minor(version int, dev uint64) (val uint)
func Minor(dev uint64) uint32 {
return uint32(__minor(NEWDEV, dev))
}
/*
* Expose the ioctl function
*/
@ -612,6 +630,7 @@ func IoctlGetTermio(fd int, req uint) (*Termio, error) {
//sys Mlock(b []byte) (err error)
//sys Mlockall(flags int) (err error)
//sys Mprotect(b []byte, prot int) (err error)
//sys Msync(b []byte, flags int) (err error)
//sys Munlock(b []byte) (err error)
//sys Munlockall() (err error)
//sys Nanosleep(time *Timespec, leftover *Timespec) (err error)

View File

@ -664,6 +664,8 @@ const (
MS_OLDSYNC = 0x0
MS_SYNC = 0x4
M_FLUSH = 0x86
NAME_MAX = 0xff
NEWDEV = 0x1
NL0 = 0x0
NL1 = 0x100
NLDLY = 0x100
@ -672,6 +674,9 @@ const (
OFDEL = 0x80
OFILL = 0x40
OLCUC = 0x2
OLDDEV = 0x0
ONBITSMAJOR = 0x7
ONBITSMINOR = 0x8
ONLCR = 0x4
ONLRET = 0x20
ONOCR = 0x10
@ -1105,6 +1110,7 @@ const (
VEOL = 0x5
VEOL2 = 0x6
VERASE = 0x2
VERASE2 = 0x11
VINTR = 0x0
VKILL = 0x3
VLNEXT = 0xf

View File

@ -25,6 +25,9 @@ import (
//go:cgo_import_dynamic libc___xnet_recvmsg __xnet_recvmsg "libsocket.so"
//go:cgo_import_dynamic libc___xnet_sendmsg __xnet_sendmsg "libsocket.so"
//go:cgo_import_dynamic libc_acct acct "libc.so"
//go:cgo_import_dynamic libc___makedev __makedev "libc.so"
//go:cgo_import_dynamic libc___major __major "libc.so"
//go:cgo_import_dynamic libc___minor __minor "libc.so"
//go:cgo_import_dynamic libc_ioctl ioctl "libc.so"
//go:cgo_import_dynamic libc_access access "libc.so"
//go:cgo_import_dynamic libc_adjtime adjtime "libc.so"
@ -75,6 +78,7 @@ import (
//go:cgo_import_dynamic libc_mlock mlock "libc.so"
//go:cgo_import_dynamic libc_mlockall mlockall "libc.so"
//go:cgo_import_dynamic libc_mprotect mprotect "libc.so"
//go:cgo_import_dynamic libc_msync msync "libc.so"
//go:cgo_import_dynamic libc_munlock munlock "libc.so"
//go:cgo_import_dynamic libc_munlockall munlockall "libc.so"
//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so"
@ -145,6 +149,9 @@ import (
//go:linkname proc__xnet_recvmsg libc___xnet_recvmsg
//go:linkname proc__xnet_sendmsg libc___xnet_sendmsg
//go:linkname procacct libc_acct
//go:linkname proc__makedev libc___makedev
//go:linkname proc__major libc___major
//go:linkname proc__minor libc___minor
//go:linkname procioctl libc_ioctl
//go:linkname procAccess libc_access
//go:linkname procAdjtime libc_adjtime
@ -195,6 +202,7 @@ import (
//go:linkname procMlock libc_mlock
//go:linkname procMlockall libc_mlockall
//go:linkname procMprotect libc_mprotect
//go:linkname procMsync libc_msync
//go:linkname procMunlock libc_munlock
//go:linkname procMunlockall libc_munlockall
//go:linkname procNanosleep libc_nanosleep
@ -266,6 +274,9 @@ var (
proc__xnet_recvmsg,
proc__xnet_sendmsg,
procacct,
proc__makedev,
proc__major,
proc__minor,
procioctl,
procAccess,
procAdjtime,
@ -316,6 +327,7 @@ var (
procMlock,
procMlockall,
procMprotect,
procMsync,
procMunlock,
procMunlockall,
procNanosleep,
@ -519,6 +531,24 @@ func acct(path *byte) (err error) {
return
}
func __makedev(version int, major uint, minor uint) (val uint64) {
r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__makedev)), 3, uintptr(version), uintptr(major), uintptr(minor), 0, 0, 0)
val = uint64(r0)
return
}
func __major(version int, dev uint64) (val uint) {
r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__major)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0)
val = uint(r0)
return
}
func __minor(version int, dev uint64) (val uint) {
r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__minor)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0)
val = uint(r0)
return
}
func ioctl(fd int, req uint, arg uintptr) (err error) {
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0)
if e1 != 0 {
@ -1017,6 +1047,18 @@ func Mprotect(b []byte, prot int) (err error) {
return
}
func Msync(b []byte, flags int) (err error) {
var _p0 *byte
if len(b) > 0 {
_p0 = &b[0]
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMsync)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(flags), 0, 0, 0)
if e1 != 0 {
err = e1
}
return
}
func Munlock(b []byte) (err error) {
var _p0 *byte
if len(b) > 0 {

View File

@ -413,8 +413,6 @@ type BpfHdr struct {
Pad_cgo_0 [2]byte
}
const _SC_PAGESIZE = 0xb
type Termios struct {
Iflag uint32
Oflag uint32

View File

@ -1,12 +1,4 @@
{
"basePath": "",
"ownerDomain": "google.com",
"name": "acceleratedmobilepageurl",
"batchPath": "batch",
"id": "acceleratedmobilepageurl:v1",
"documentationLink": "https://developers.google.com/amp/cache/",
"revision": "20170718",
"title": "Accelerated Mobile Pages (AMP) URL API",
"ownerName": "Google",
"discoveryVersion": "v1",
"version_module": "True",
@ -14,19 +6,19 @@
"ampUrls": {
"methods": {
"batchGet": {
"request": {
"$ref": "BatchGetAmpUrlsRequest"
},
"description": "Returns AMP URL(s) and equivalent\n[AMP Cache URL(s)](/amp/cache/overview#amp-cache-url-format).",
"httpMethod": "POST",
"parameterOrder": [],
"response": {
"$ref": "BatchGetAmpUrlsResponse"
},
"parameterOrder": [],
"httpMethod": "POST",
"parameters": {},
"flatPath": "v1/ampUrls:batchGet",
"id": "acceleratedmobilepageurl.ampUrls.batchGet",
"path": "v1/ampUrls:batchGet",
"id": "acceleratedmobilepageurl.ampUrls.batchGet"
"description": "Returns AMP URL(s) and equivalent\n[AMP Cache URL(s)](/amp/cache/overview#amp-cache-url-format).",
"request": {
"$ref": "BatchGetAmpUrlsRequest"
}
}
}
}
@ -38,18 +30,18 @@
"type": "string"
},
"prettyPrint": {
"location": "query",
"description": "Returns response with indentations and line breaks.",
"default": "true",
"type": "boolean"
},
"uploadType": {
"location": "query",
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"type": "string"
"type": "boolean",
"location": "query"
},
"fields": {
"location": "query",
"description": "Selector specifying which fields to include in a partial response.",
"type": "string"
},
"uploadType": {
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"type": "string",
"location": "query"
},
@ -59,6 +51,8 @@
"location": "query"
},
"$.xgafv": {
"description": "V1 error format.",
"type": "string",
"enumDescriptions": [
"v1 error format",
"v2 error format"
@ -67,17 +61,9 @@
"enum": [
"1",
"2"
],
"description": "V1 error format.",
"type": "string"
]
},
"alt": {
"enum": [
"json",
"media",
"proto"
],
"type": "string",
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
@ -85,38 +71,44 @@
],
"location": "query",
"description": "Data format for response.",
"default": "json"
"default": "json",
"enum": [
"json",
"media",
"proto"
],
"type": "string"
},
"key": {
"location": "query",
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"type": "string"
},
"access_token": {
"location": "query",
"description": "OAuth access token.",
"type": "string"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"type": "string",
"location": "query"
},
"quotaUser": {
"location": "query",
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"type": "string",
"location": "query"
"type": "string"
},
"pp": {
"location": "query",
"description": "Pretty-print response.",
"default": "true",
"type": "boolean",
"location": "query"
"type": "boolean"
},
"oauth_token": {
"location": "query",
"description": "OAuth 2.0 token for the current user.",
"type": "string"
"type": "string",
"location": "query"
},
"bearer_token": {
"location": "query",
"description": "OAuth bearer token.",
"type": "string"
"type": "string",
"location": "query"
}
},
"schemas": {
@ -224,13 +216,21 @@
},
"protocol": "rest",
"icons": {
"x32": "http://www.google.com/images/icons/product/search-32.gif",
"x16": "http://www.google.com/images/icons/product/search-16.gif"
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"version": "v1",
"baseUrl": "https://acceleratedmobilepageurl.googleapis.com/",
"kind": "discovery#restDescription",
"description": "Retrieves the list of AMP URLs (and equivalent AMP Cache URLs) for a given list of public URL(s).\n",
"servicePath": "",
"rootUrl": "https://acceleratedmobilepageurl.googleapis.com/"
"description": "Retrieves the list of AMP URLs (and equivalent AMP Cache URLs) for a given list of public URL(s).\n",
"kind": "discovery#restDescription",
"rootUrl": "https://acceleratedmobilepageurl.googleapis.com/",
"basePath": "",
"ownerDomain": "google.com",
"name": "acceleratedmobilepageurl",
"batchPath": "batch",
"revision": "20170718",
"documentationLink": "https://developers.google.com/amp/cache/",
"id": "acceleratedmobilepageurl:v1",
"title": "Accelerated Mobile Pages (AMP) URL API"
}

View File

@ -21,7 +21,7 @@
"basePath": "/adexchangebuyer/v1.2/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "adexchangebuyer/v1.2/",
"batchPath": "batch",
"batchPath": "batch/adexchangebuyer/v1.2",
"parameters": {
"alt": {
"type": "string",

View File

@ -21,7 +21,7 @@
"basePath": "/adexchangebuyer/v1.3/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "adexchangebuyer/v1.3/",
"batchPath": "batch",
"batchPath": "batch/adexchangebuyer/v1.3",
"parameters": {
"alt": {
"type": "string",

View File

@ -21,7 +21,7 @@
"basePath": "/adexchangebuyer/v1.4/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "adexchangebuyer/v1.4/",
"batchPath": "batch",
"batchPath": "batch/adexchangebuyer/v1.4",
"parameters": {
"alt": {
"type": "string",

File diff suppressed because it is too large Load Diff

View File

@ -5255,10 +5255,12 @@ func (c *AccountsCreativesListCall) PageToken(pageToken string) *AccountsCreativ
// not_checked}
// <li>attribute: {a numeric attribute from the list of
// attributes}
// <li>disapprovalReason: {a reason from
// <li>disapprovalReason: {a reason
// from
// DisapprovalReason
// </ul>
// Example: 'accountId=12345 AND (dealsStatus:disapproved AND
// Example: 'accountId=12345 AND (dealsStatus:disapproved
// AND
// disapprovalReason:unacceptable_content) OR attribute:47'
func (c *AccountsCreativesListCall) Query(query string) *AccountsCreativesListCall {
c.urlParams_.Set("query", query)
@ -5385,7 +5387,7 @@ func (c *AccountsCreativesListCall) Do(opts ...googleapi.CallOption) (*ListCreat
// "type": "string"
// },
// "query": {
// "description": "An optional query string to filter creatives. If no filter is specified,\nall active creatives will be returned.\nSupported queries are:\n\u003cul\u003e\n\u003cli\u003eaccountId=\u003ci\u003eaccount_id_string\u003c/i\u003e\n\u003cli\u003ecreativeId=\u003ci\u003ecreative_id_string\u003c/i\u003e\n\u003cli\u003edealsStatus: {approved, conditionally_approved, disapproved,\n not_checked}\n\u003cli\u003eopenAuctionStatus: {approved, conditionally_approved, disapproved,\n not_checked}\n\u003cli\u003eattribute: {a numeric attribute from the list of attributes}\n\u003cli\u003edisapprovalReason: {a reason from DisapprovalReason\n\u003c/ul\u003e\nExample: 'accountId=12345 AND (dealsStatus:disapproved AND disapprovalReason:unacceptable_content) OR attribute:47'",
// "description": "An optional query string to filter creatives. If no filter is specified,\nall active creatives will be returned.\nSupported queries are:\n\u003cul\u003e\n\u003cli\u003eaccountId=\u003ci\u003eaccount_id_string\u003c/i\u003e\n\u003cli\u003ecreativeId=\u003ci\u003ecreative_id_string\u003c/i\u003e\n\u003cli\u003edealsStatus: {approved, conditionally_approved, disapproved,\n not_checked}\n\u003cli\u003eopenAuctionStatus: {approved, conditionally_approved, disapproved,\n not_checked}\n\u003cli\u003eattribute: {a numeric attribute from the list of attributes}\n\u003cli\u003edisapprovalReason: {a reason from\nDisapprovalReason\n\u003c/ul\u003e\nExample: 'accountId=12345 AND (dealsStatus:disapproved AND\ndisapprovalReason:unacceptable_content) OR attribute:47'",
// "location": "query",
// "type": "string"
// }

View File

@ -21,7 +21,7 @@
"basePath": "/adexchangeseller/v1.1/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "adexchangeseller/v1.1/",
"batchPath": "batch",
"batchPath": "batch/adexchangeseller/v1.1",
"parameters": {
"alt": {
"type": "string",

View File

@ -21,7 +21,7 @@
"basePath": "/adexchangeseller/v1/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "adexchangeseller/v1/",
"batchPath": "batch",
"batchPath": "batch/adexchangeseller/v1",
"parameters": {
"alt": {
"type": "string",

View File

@ -21,7 +21,7 @@
"basePath": "/adexchangeseller/v2.0/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "adexchangeseller/v2.0/",
"batchPath": "batch",
"batchPath": "batch/adexchangeseller/v2.0",
"parameters": {
"alt": {
"type": "string",

View File

@ -1,4 +1,15 @@
{
"canonicalName": "Ad Experience Report",
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/xapi.zoo": {
"description": "Test scope for access to the Zoo service"
}
}
}
},
"rootUrl": "https://adexperiencereport.googleapis.com/",
"ownerDomain": "google.com",
"name": "adexperiencereport",
"batchPath": "batch",
@ -8,29 +19,29 @@
"sites": {
"methods": {
"get": {
"response": {
"$ref": "SiteSummaryResponse"
},
"description": "Gets a summary of the ad experience rating of a site.",
"httpMethod": "GET",
"parameterOrder": [
"name"
],
"httpMethod": "GET",
"response": {
"$ref": "SiteSummaryResponse"
},
"parameters": {
"name": {
"pattern": "^sites/[^/]+$",
"location": "path",
"description": "The required site name. It should be the site property whose ad experiences\nmay have been reviewed, and it should be URL-encoded. For example,\nsites/https%3A%2F%2Fwww.google.com. The server will return an error of\nBAD_REQUEST if this field is not filled in. Note that if the site property\nis not yet verified in Search Console, the reportUrl field returned by the\nAPI will lead to the verification page, prompting the user to go through\nthat process before they can gain access to the Ad Experience Report.",
"type": "string",
"required": true,
"pattern": "^sites/[^/]+$"
"required": true
}
},
"scopes": [
"https://www.googleapis.com/auth/xapi.zoo"
],
"flatPath": "v1/sites/{sitesId}",
"id": "adexperiencereport.sites.get",
"path": "v1/{+name}",
"description": "Gets a summary of the ad experience rating of a site."
"id": "adexperiencereport.sites.get"
}
}
},
@ -38,23 +49,75 @@
"methods": {
"list": {
"description": "Lists sites with Ad Experience Report statuses of \"Failing\" or \"Warning\".",
"httpMethod": "GET",
"parameterOrder": [],
"response": {
"$ref": "ViolatingSitesResponse"
},
"parameterOrder": [],
"httpMethod": "GET",
"parameters": {},
"scopes": [
"https://www.googleapis.com/auth/xapi.zoo"
],
"flatPath": "v1/violatingSites",
"path": "v1/violatingSites",
"id": "adexperiencereport.violatingSites.list"
"id": "adexperiencereport.violatingSites.list",
"path": "v1/violatingSites"
}
}
}
},
"parameters": {
"access_token": {
"description": "OAuth access token.",
"type": "string",
"location": "query"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"type": "string",
"location": "query"
},
"quotaUser": {
"location": "query",
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"type": "string"
},
"pp": {
"location": "query",
"description": "Pretty-print response.",
"default": "true",
"type": "boolean"
},
"bearer_token": {
"location": "query",
"description": "OAuth bearer token.",
"type": "string"
},
"oauth_token": {
"location": "query",
"description": "OAuth 2.0 token for the current user.",
"type": "string"
},
"upload_protocol": {
"location": "query",
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"type": "string"
},
"prettyPrint": {
"description": "Returns response with indentations and line breaks.",
"default": "true",
"type": "boolean",
"location": "query"
},
"fields": {
"location": "query",
"description": "Selector specifying which fields to include in a partial response.",
"type": "string"
},
"uploadType": {
"location": "query",
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"type": "string"
},
"$.xgafv": {
"enumDescriptions": [
"v1 error format",
@ -74,6 +137,12 @@
"location": "query"
},
"alt": {
"enum": [
"json",
"media",
"proto"
],
"type": "string",
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
@ -81,65 +150,7 @@
],
"location": "query",
"description": "Data format for response.",
"default": "json",
"enum": [
"json",
"media",
"proto"
],
"type": "string"
},
"access_token": {
"description": "OAuth access token.",
"type": "string",
"location": "query"
},
"key": {
"location": "query",
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"type": "string"
},
"quotaUser": {
"location": "query",
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"type": "string"
},
"pp": {
"description": "Pretty-print response.",
"default": "true",
"type": "boolean",
"location": "query"
},
"bearer_token": {
"location": "query",
"description": "OAuth bearer token.",
"type": "string"
},
"oauth_token": {
"location": "query",
"description": "OAuth 2.0 token for the current user.",
"type": "string"
},
"upload_protocol": {
"location": "query",
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"type": "string"
},
"prettyPrint": {
"location": "query",
"description": "Returns response with indentations and line breaks.",
"default": "true",
"type": "boolean"
},
"fields": {
"location": "query",
"description": "Selector specifying which fields to include in a partial response.",
"type": "string"
},
"uploadType": {
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"type": "string",
"location": "query"
"default": "json"
}
},
"version": "v1",
@ -148,15 +159,13 @@
"description": "View Ad Experience Report data, and get a list of sites that have a significant number of annoying ads.",
"servicePath": "",
"basePath": "",
"revision": "20170819",
"revision": "20170918",
"documentationLink": "https://developers.google.com/ad-experience-report/",
"id": "adexperiencereport:v1",
"discoveryVersion": "v1",
"version_module": true,
"schemas": {
"ViolatingSitesResponse": {
"description": "Response message for ListViolatingSites.",
"type": "object",
"properties": {
"violatingSites": {
"description": "A list of summaries of violating sites.",
@ -166,15 +175,15 @@
"type": "array"
}
},
"id": "ViolatingSitesResponse"
"id": "ViolatingSitesResponse",
"description": "Response message for ListViolatingSites.",
"type": "object"
},
"SiteSummaryResponse": {
"description": "Response message for GetSiteSummary.",
"type": "object",
"properties": {
"mobileSummary": {
"$ref": "PlatformSummary",
"description": "Summary for the mobile review of the site."
"description": "Summary for the mobile review of the site.",
"$ref": "PlatformSummary"
},
"reviewedSite": {
"description": "The name of the site reviewed.",
@ -185,12 +194,19 @@
"description": "Summary for the desktop review of the site."
}
},
"id": "SiteSummaryResponse"
"id": "SiteSummaryResponse",
"description": "Response message for GetSiteSummary.",
"type": "object"
},
"PlatformSummary": {
"description": "Summary of the ad experience rating of a site for a specific platform.",
"type": "object",
"properties": {
"lastChangeTime": {
"format": "google-datetime",
"description": "The last time that the site changed status.",
"type": "string"
},
"betterAdsStatus": {
"enumDescriptions": [
"Not reviewed.",
@ -207,29 +223,20 @@
"description": "The status of the site reviewed for the Better Ads Standards.",
"type": "string"
},
"abusiveStatus": {
"description": "The status of the site reviewed for abusive ads.",
"type": "string",
"enumDescriptions": [
"Not reviewed.",
"Passing.",
"Failing."
],
"enum": [
"UNKNOWN",
"PASSING",
"FAILING"
]
"enforcementTime": {
"format": "google-datetime",
"description": "The date on which ad filtering begins.",
"type": "string"
},
"region": {
"description": "The assigned regions for the site and platform.",
"items": {
"type": "string",
"enum": [
"REGION_UNKNOWN",
"REGION_A",
"REGION_B"
]
],
"type": "string"
},
"type": "array",
"enumDescriptions": [
@ -238,12 +245,9 @@
"Region B."
]
},
"enforcementTime": {
"format": "google-datetime",
"description": "The date on which ad filtering begins.",
"type": "string"
},
"filterStatus": {
"description": "The ad filtering status of the site.",
"type": "string",
"enumDescriptions": [
"N/A.",
"Ad filtering is on.",
@ -257,9 +261,7 @@
"OFF",
"PAUSED",
"PENDING"
],
"description": "The ad filtering status of the site.",
"type": "string"
]
},
"underReview": {
"description": "Whether the site is currently under review.",
@ -268,11 +270,6 @@
"reportUrl": {
"description": "A link that leads to a full ad experience report.",
"type": "string"
},
"lastChangeTime": {
"format": "google-datetime",
"description": "The last time that the site changed status.",
"type": "string"
}
},
"id": "PlatformSummary"
@ -282,16 +279,5 @@
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"canonicalName": "Ad Experience Report",
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/xapi.zoo": {
"description": "Test scope for access to the Zoo service"
}
}
}
},
"rootUrl": "https://adexperiencereport.googleapis.com/"
}
}

View File

@ -99,14 +99,6 @@ type ViolatingSitesService struct {
// PlatformSummary: Summary of the ad experience rating of a site for a
// specific platform.
type PlatformSummary struct {
// AbusiveStatus: The status of the site reviewed for abusive ads.
//
// Possible values:
// "UNKNOWN" - Not reviewed.
// "PASSING" - Passing.
// "FAILING" - Failing.
AbusiveStatus string `json:"abusiveStatus,omitempty"`
// BetterAdsStatus: The status of the site reviewed for the Better Ads
// Standards.
//
@ -147,7 +139,7 @@ type PlatformSummary struct {
// UnderReview: Whether the site is currently under review.
UnderReview bool `json:"underReview,omitempty"`
// ForceSendFields is a list of field names (e.g. "AbusiveStatus") to
// ForceSendFields is a list of field names (e.g. "BetterAdsStatus") 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
@ -155,12 +147,13 @@ type PlatformSummary struct {
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AbusiveStatus") 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 is a list of field names (e.g. "BetterAdsStatus") 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:"-"`
}

View File

@ -22,7 +22,7 @@
"basePath": "/admin/datatransfer/v1/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "admin/datatransfer/v1/",
"batchPath": "batch",
"batchPath": "batch/admin/datatransfer_v1",
"parameters": {
"alt": {
"type": "string",

View File

@ -22,7 +22,7 @@
"basePath": "/admin/directory/v1/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "admin/directory/v1/",
"batchPath": "batch",
"batchPath": "batch/admin/directory_v1",
"parameters": {
"alt": {
"type": "string",

View File

@ -22,7 +22,7 @@
"basePath": "/admin/reports/v1/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "admin/reports/v1/",
"batchPath": "batch",
"batchPath": "batch/admin/reports_v1",
"parameters": {
"alt": {
"type": "string",

View File

@ -1,12 +1,12 @@
{
"kind": "discovery#restDescription",
"etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/JUHnWdtkgRO5aAK7_Wqm8rZ_rJ8\"",
"etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/5dfOA4TQ4h1l0_SNvBmZicECrgQ\"",
"discoveryVersion": "v1",
"id": "adsense:v1.4",
"name": "adsense",
"canonicalName": "AdSense",
"version": "v1.4",
"revision": "20170910",
"revision": "20170912",
"title": "AdSense Management API",
"description": "Accesses AdSense publishers' inventory and generates performance reports.",
"ownerDomain": "google.com",
@ -21,7 +21,7 @@
"basePath": "/adsense/v1.4/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "adsense/v1.4/",
"batchPath": "batch",
"batchPath": "batch/adsense/v1.4",
"parameters": {
"alt": {
"type": "string",

View File

@ -1,12 +1,12 @@
{
"kind": "discovery#restDescription",
"etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/QFztQ_ABS3emSn-gE83ENFOi4tE\"",
"etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/HzRIN4Gi3jUuNGWAsKKaxu4tH4k\"",
"discoveryVersion": "v1",
"id": "adsensehost:v4.1",
"name": "adsensehost",
"canonicalName": "AdSense Host",
"version": "v4.1",
"revision": "20170910",
"revision": "20170912",
"title": "AdSense Host API",
"description": "Generates performance reports, generates ad codes, and provides publisher management capabilities for AdSense Hosts.",
"ownerDomain": "google.com",
@ -24,7 +24,7 @@
"basePath": "/adsensehost/v4.1/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "adsensehost/v4.1/",
"batchPath": "batch",
"batchPath": "batch/adsensehost/v4.1",
"parameters": {
"alt": {
"type": "string",

View File

@ -20,7 +20,7 @@
"basePath": "/analytics/v2.4/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "analytics/v2.4/",
"batchPath": "batch",
"batchPath": "batch/analytics/v2.4",
"parameters": {
"alt": {
"type": "string",

File diff suppressed because it is too large Load Diff

View File

@ -220,28 +220,37 @@ func (s *ClaimDevicesRequest) MarshalJSON() ([]byte, error) {
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// Company: Company
// Company: A customer resource in the zero-touch enrollment API.
type Company struct {
// AdminEmails: Admin emails.
// Admins are able to operate on the portal.
// This field is a write-only field at creation time.
// AdminEmails: Input only. Optional. Email address of customer's users
// in the admin role.
// Each email address must be associated with a Google Account.
AdminEmails []string `json:"adminEmails,omitempty"`
// CompanyId: Company ID.
// CompanyId: Output only. The ID of the company. Assigned by the
// server.
CompanyId int64 `json:"companyId,omitempty,string"`
// CompanyName: Company name.
// CompanyName: Required. The name of the company. For example _XYZ
// Corp_. Characters
// allowed are: Latin letters, numerals, hyphens, and spaces. Displayed
// to the
// customer's employees in the zero-touch enrollment portal.
CompanyName string `json:"companyName,omitempty"`
// Name: The API resource name of the company in the
// Name: Output only. The API resource name of the company in the
// format
// `partners/[PARTNER_ID]/customers/[CUSTOMER_ID]`.
// `partners/[PARTNER_ID]/customers/[CUSTOMER_ID]`. Assigned by the
// server.
Name string `json:"name,omitempty"`
// OwnerEmails: Owner emails.
// Owners are able to operate on the portal, and modify admins or
// other
// owners. This field is a write-only field at creation time.
// OwnerEmails: Input only. Email address of customer's users in the
// owner role. At least
// one `owner_email` is required. Each email address must be associated
// with a
// Google Account. Owners share the same access as admins but can also
// add,
// delete, and edit your organization's portal users.
OwnerEmails []string `json:"ownerEmails,omitempty"`
// ServerResponse contains the HTTP response code and headers from the
@ -273,7 +282,12 @@ func (s *Company) MarshalJSON() ([]byte, error) {
// CreateCustomerRequest: Request message to create a customer.
type CreateCustomerRequest struct {
// Customer: The customer to create.
// Customer: Required. The company data to populate the new customer.
// Must contain a
// value for `companyName` and at least one `owner_email` that's
// associated
// with a Google Account. The values for `companyId` and `name` must be
// empty.
Customer *Company `json:"customer,omitempty"`
// ForceSendFields is a list of field names (e.g. "Customer") to
@ -1392,10 +1406,13 @@ type PartnersCustomersCreateCall struct {
header_ http.Header
}
// Create: A customer for Zero Touch Provisioning will be created.
// After a Customer is created, their admins and owners will be able to
// manage
// devices on partner.android.com/zerotouch or via their API.
// Create: Creates a customer for zero-touch enrollment. After the
// method returns
// successfully, admin and owner roles can manage devices and EMM
// configs
// by calling API methods or using their zero-touch enrollment portal.
// The API
// doesn't notify the customer that they have access.
func (r *PartnersCustomersService) Create(parent string, createcustomerrequest *CreateCustomerRequest) *PartnersCustomersCreateCall {
c := &PartnersCustomersCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.parent = parent
@ -1489,7 +1506,7 @@ func (c *PartnersCustomersCreateCall) Do(opts ...googleapi.CallOption) (*Company
}
return ret, nil
// {
// "description": "A customer for Zero Touch Provisioning will be created.\nAfter a Customer is created, their admins and owners will be able to manage\ndevices on partner.android.com/zerotouch or via their API.",
// "description": "Creates a customer for zero-touch enrollment. After the method returns\nsuccessfully, admin and owner roles can manage devices and EMM configs\nby calling API methods or using their zero-touch enrollment portal. The API\ndoesn't notify the customer that they have access.",
// "flatPath": "v1/partners/{partnersId}/customers",
// "httpMethod": "POST",
// "id": "androiddeviceprovisioning.partners.customers.create",
@ -1498,7 +1515,7 @@ func (c *PartnersCustomersCreateCall) Do(opts ...googleapi.CallOption) (*Company
// ],
// "parameters": {
// "parent": {
// "description": "The parent resource in format `partners/[PARTNER_ID]'.",
// "description": "Required. The parent resource ID in format `partners/[PARTNER_ID]` that\nidentifies the reseller.",
// "location": "path",
// "pattern": "^partners/[^/]+$",
// "required": true,
@ -1527,8 +1544,8 @@ type PartnersCustomersListCall struct {
header_ http.Header
}
// List: List the customers that are enrolled to the reseller identified
// by the
// List: Lists the customers that are enrolled to the reseller
// identified by the
// `partnerId` argument. This list includes customers that the
// reseller
// created and customers that enrolled themselves using the portal.
@ -1632,7 +1649,7 @@ func (c *PartnersCustomersListCall) Do(opts ...googleapi.CallOption) (*ListCusto
}
return ret, nil
// {
// "description": "List the customers that are enrolled to the reseller identified by the\n`partnerId` argument. This list includes customers that the reseller\ncreated and customers that enrolled themselves using the portal.",
// "description": "Lists the customers that are enrolled to the reseller identified by the\n`partnerId` argument. This list includes customers that the reseller\ncreated and customers that enrolled themselves using the portal.",
// "flatPath": "v1/partners/{partnersId}/customers",
// "httpMethod": "GET",
// "id": "androiddeviceprovisioning.partners.customers.list",

View File

@ -1,12 +1,12 @@
{
"kind": "discovery#restDescription",
"etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/RhIHx1SwfJ96Awey5il5_fqGJDg\"",
"etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/eOnhI7vohdeU44iGbzR45SHL-EI\"",
"discoveryVersion": "v1",
"id": "androidenterprise:v1",
"name": "androidenterprise",
"canonicalName": "Android Enterprise",
"version": "v1",
"revision": "20170830",
"revision": "20170911",
"title": "Google Play EMM API",
"description": "Manages the deployment of apps to Android for Work users.",
"ownerDomain": "google.com",
@ -21,7 +21,7 @@
"basePath": "/androidenterprise/v1/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "androidenterprise/v1/",
"batchPath": "batch",
"batchPath": "batch/androidenterprise/v1",
"parameters": {
"alt": {
"type": "string",

View File

@ -1115,7 +1115,7 @@
"The policy is not supported by the version of Android Device Policy on the device.",
"A blocked application is installed.",
"The setting was not applied yet at the time of the report, but is expected to be applied shortly.",
"The setting cannot be applied to the application because its target SDK version is not high enough.",
"The setting cannot be applied to the application because the application doesn't support it, for example because its target SDK version is not high enough.",
"The application is installed but not updated to the minimum version code specified by policy"
],
"type": "string"
@ -1125,7 +1125,7 @@
"type": "string"
},
"packageName": {
"description": "The package name indicating which application is out of compliance. If not set, then this condition matches any package name. If this field is set, then setting_name must be unset or set to applications; otherwise, the condition would never be satisfied.",
"description": "The package name indicating which application is out of compliance. If not set, then this condition matches any package name.",
"type": "string"
}
},
@ -1206,7 +1206,7 @@
"The policy is not supported by the version of Android Device Policy on the device.",
"A blocked application is installed.",
"The setting was not applied yet at the time of the report, but is expected to be applied shortly.",
"The setting cannot be applied to the application because its target SDK version is not high enough.",
"The setting cannot be applied to the application because the application doesn't support it, for example because its target SDK version is not high enough.",
"The application is installed but not updated to the minimum version code specified by policy"
],
"type": "string"
@ -1403,7 +1403,7 @@
}
},
"networkEscapeHatchEnabled": {
"description": "Flag to specify if network escape hatch is enabled. If this flag has been enabled then upon device boot if device has no network connection, then an activity will be shown that allows the user to temporarily connect to a network to fetch the latest policy. The launched activity will time out if no network has been connected for a given while and will return to the previous activity that was shown.",
"description": "Whether the network escape hatch is enabled. If a network connection can't be made at boot time, the escape hatch prompts the user to temporarily connect to a network in order to refresh the device policy. After applying policy, the temporary network will be forgotten and the device will continue booting. This prevents being unable to connect to a network if there is no suitable network in the last policy and the device boots into an app in lock task mode, or the user is otherwise unable to reach device settings.",
"type": "boolean"
},
"systemUpdate": {
@ -2250,7 +2250,7 @@
"id": "HardwareStatus"
}
},
"revision": "20170905",
"revision": "20170911",
"basePath": "",
"icons": {
"x32": "http://www.google.com/images/icons/product/search-32.gif",

View File

@ -1418,7 +1418,8 @@ type NonComplianceDetail struct {
// "PENDING" - The setting was not applied yet at the time of the
// report, but is expected to be applied shortly.
// "APP_INCOMPATIBLE" - The setting cannot be applied to the
// application because its target SDK version is not high enough.
// application because the application doesn't support it, for example
// because its target SDK version is not high enough.
// "APP_NOT_UPDATED" - The application is installed but not updated to
// the minimum version code specified by policy
NonComplianceReason string `json:"nonComplianceReason,omitempty"`
@ -1481,15 +1482,14 @@ type NonComplianceDetailCondition struct {
// "PENDING" - The setting was not applied yet at the time of the
// report, but is expected to be applied shortly.
// "APP_INCOMPATIBLE" - The setting cannot be applied to the
// application because its target SDK version is not high enough.
// application because the application doesn't support it, for example
// because its target SDK version is not high enough.
// "APP_NOT_UPDATED" - The application is installed but not updated to
// the minimum version code specified by policy
NonComplianceReason string `json:"nonComplianceReason,omitempty"`
// PackageName: The package name indicating which application is out of
// compliance. If not set, then this condition matches any package name.
// If this field is set, then setting_name must be unset or set to
// applications; otherwise, the condition would never be satisfied.
PackageName string `json:"packageName,omitempty"`
// SettingName: The name of the policy setting. This is the JSON field
@ -1846,13 +1846,15 @@ type Policy struct {
// enterprises/{enterpriseId}/policies/{policyId}
Name string `json:"name,omitempty"`
// NetworkEscapeHatchEnabled: Flag to specify if network escape hatch is
// enabled. If this flag has been enabled then upon device boot if
// device has no network connection, then an activity will be shown that
// allows the user to temporarily connect to a network to fetch the
// latest policy. The launched activity will time out if no network has
// been connected for a given while and will return to the previous
// activity that was shown.
// NetworkEscapeHatchEnabled: Whether the network escape hatch is
// enabled. If a network connection can't be made at boot time, the
// escape hatch prompts the user to temporarily connect to a network in
// order to refresh the device policy. After applying policy, the
// temporary network will be forgotten and the device will continue
// booting. This prevents being unable to connect to a network if there
// is no suitable network in the last policy and the device boots into
// an app in lock task mode, or the user is otherwise unable to reach
// device settings.
NetworkEscapeHatchEnabled bool `json:"networkEscapeHatchEnabled,omitempty"`
// OpenNetworkConfiguration: Network configuration for the device. See

View File

@ -1,12 +1,12 @@
{
"kind": "discovery#restDescription",
"etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/LIbYVZb_4AVNYXTI7gW6jjbQKZE\"",
"etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/EKUDjWuy8xhU5dHne-WullXJgWw\"",
"discoveryVersion": "v1",
"id": "androidpublisher:v1.1",
"name": "androidpublisher",
"canonicalName": "Android Publisher",
"version": "v1.1",
"revision": "20170815",
"revision": "20170913",
"title": "Google Play Developer API",
"description": "Lets Android application developers access their Google Play accounts.",
"ownerDomain": "google.com",
@ -21,7 +21,7 @@
"basePath": "/androidpublisher/v1.1/applications/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "androidpublisher/v1.1/applications/",
"batchPath": "batch",
"batchPath": "batch/androidpublisher/v1.1",
"parameters": {
"alt": {
"type": "string",

View File

@ -1,12 +1,12 @@
{
"kind": "discovery#restDescription",
"etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/GFmAPKnOg_ftPo6thNMuQykGE_I\"",
"etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/Ex2nsAPYjRP0NRWSGg4yyxwNJ18\"",
"discoveryVersion": "v1",
"id": "androidpublisher:v1",
"name": "androidpublisher",
"canonicalName": "Android Publisher",
"version": "v1",
"revision": "20170815",
"revision": "20170913",
"title": "Google Play Developer API",
"description": "Lets Android application developers access their Google Play accounts.",
"ownerDomain": "google.com",
@ -21,7 +21,7 @@
"basePath": "/androidpublisher/v1/applications/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "androidpublisher/v1/applications/",
"batchPath": "batch",
"batchPath": "batch/androidpublisher/v1",
"parameters": {
"alt": {
"type": "string",

View File

@ -1,12 +1,12 @@
{
"kind": "discovery#restDescription",
"etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/e4AtolObWHB9RMWbWiGGnmazpNA\"",
"etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/QjVvqrUMRW1tTVdJHVqdnKd9gLQ\"",
"discoveryVersion": "v1",
"id": "androidpublisher:v2",
"name": "androidpublisher",
"canonicalName": "Android Publisher",
"version": "v2",
"revision": "20170815",
"revision": "20170913",
"title": "Google Play Developer API",
"description": "Lets Android application developers access their Google Play accounts.",
"ownerDomain": "google.com",
@ -21,7 +21,7 @@
"basePath": "/androidpublisher/v2/applications/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "androidpublisher/v2/applications/",
"batchPath": "batch",
"batchPath": "batch/androidpublisher/v2",
"parameters": {
"alt": {
"type": "string",
@ -985,7 +985,7 @@
},
"cancelReason": {
"type": "integer",
"description": "The reason why a subscription was cancelled or is not auto-renewing. Possible values are: \n- User cancelled the subscription \n- Subscription was cancelled by the system, for example because of a billing problem",
"description": "The reason why a subscription was cancelled or is not auto-renewing. Possible values are: \n- User cancelled the subscription \n- Subscription was cancelled by the system, for example because of a billing problem \n- Subscription was replaced with a new subscription",
"format": "int32"
},
"countryCode": {

View File

@ -2022,6 +2022,7 @@ type SubscriptionPurchase struct {
// - User cancelled the subscription
// - Subscription was cancelled by the system, for example because of a
// billing problem
// - Subscription was replaced with a new subscription
CancelReason *int64 `json:"cancelReason,omitempty"`
// CountryCode: ISO 3166-1 alpha-2 billing country/region code of the

View File

@ -495,7 +495,7 @@
"id": "bigquerydatatransfer:v1",
"name": "bigquerydatatransfer",
"version": "v1",
"title": "BigQuery Data Transfer Service API",
"title": "BigQuery Data Transfer API",
"description": "Transfers data from partner SaaS applications to Google BigQuery on a scheduled, managed basis.",
"discoveryRestUrl": "https://bigquerydatatransfer.googleapis.com/$discovery/rest?version=v1",
"icons": {
@ -772,6 +772,21 @@
"documentationLink": "https://cloud.google.com/resource-manager",
"preferred": false
},
{
"kind": "discovery#directoryItem",
"id": "cloudtasks:v2beta2",
"name": "cloudtasks",
"version": "v2beta2",
"title": "Cloud Tasks API",
"description": "Manages the execution of large numbers of distributed requests. Cloud Tasks is in Alpha.",
"discoveryRestUrl": "https://cloudtasks.googleapis.com/$discovery/rest?version=v2beta2",
"icons": {
"x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
"x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
},
"documentationLink": "https://cloud.google.com/cloud-tasks/",
"preferred": true
},
{
"kind": "discovery#directoryItem",
"id": "cloudtrace:v1",
@ -929,21 +944,6 @@
},
"preferred": true
},
{
"kind": "discovery#directoryItem",
"id": "container:v1alpha1",
"name": "container",
"version": "v1alpha1",
"title": "Google Container Engine API",
"description": "The Google Container Engine API is used for building and managing container based applications, powered by the open source Kubernetes technology.",
"discoveryRestUrl": "https://container.googleapis.com/$discovery/rest?version=v1alpha1",
"icons": {
"x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
"x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
},
"documentationLink": "https://cloud.google.com/container-engine/",
"preferred": false
},
{
"kind": "discovery#directoryItem",
"id": "container:v1",
@ -1804,6 +1804,21 @@
"documentationLink": "https://cloud.google.com/compute/docs/oslogin/rest/",
"preferred": true
},
{
"kind": "discovery#directoryItem",
"id": "oslogin:v1beta",
"name": "oslogin",
"version": "v1beta",
"title": "Google Cloud OS Login API",
"description": "Manages OS login configuration for Directory API users.",
"discoveryRestUrl": "https://oslogin.googleapis.com/$discovery/rest?version=v1beta",
"icons": {
"x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
"x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
},
"documentationLink": "https://cloud.google.com/compute/docs/oslogin/rest/",
"preferred": false
},
{
"kind": "discovery#directoryItem",
"id": "pagespeedonline:v1",
@ -2670,22 +2685,6 @@
"documentationLink": "https://developers.google.com/cloud-test-lab/",
"preferred": true
},
{
"kind": "discovery#directoryItem",
"id": "toolresults:v1beta3firstparty",
"name": "toolresults",
"version": "v1beta3firstparty",
"title": "Cloud Tool Results firstparty API",
"description": "Reads and publishes results from Firebase Test Lab.",
"discoveryRestUrl": "https://www.googleapis.com/discovery/v1/apis/toolresults/v1beta3firstparty/rest",
"discoveryLink": "./apis/toolresults/v1beta3firstparty/rest",
"icons": {
"x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
"x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
},
"documentationLink": "https://firebase.google.com/docs/test-lab/",
"preferred": false
},
{
"kind": "discovery#directoryItem",
"id": "toolresults:v1beta3",
@ -2739,13 +2738,13 @@
"name": "vault",
"version": "v1",
"title": "Google Vault API",
"description": "",
"description": "Archiving and eDiscovery for G Suite.",
"discoveryRestUrl": "https://vault.googleapis.com/$discovery/rest?version=v1",
"icons": {
"x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
"x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
},
"documentationLink": "https://apps.google.com/products/vault/",
"documentationLink": "https://developers.google.com/vault",
"preferred": true
},
{

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -20,7 +20,7 @@
"basePath": "/appsactivity/v1/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "appsactivity/v1/",
"batchPath": "batch",
"batchPath": "batch/appsactivity/v1",
"parameters": {
"alt": {
"type": "string",

View File

@ -1,12 +1,12 @@
{
"kind": "discovery#restDescription",
"etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/mbrci8GXE-W50F0APQRstWksGH8\"",
"etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/ANNk7azl5zRYtDCCrlgSBbC8-4Y\"",
"discoveryVersion": "v1",
"id": "appstate:v1",
"name": "appstate",
"canonicalName": "App State",
"version": "v1",
"revision": "20170831",
"revision": "20170911",
"title": "Google App State API",
"description": "The Google App State API.",
"ownerDomain": "google.com",
@ -21,7 +21,7 @@
"basePath": "/appstate/v1/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "appstate/v1/",
"batchPath": "batch",
"batchPath": "batch/appstate/v1",
"parameters": {
"alt": {
"type": "string",

View File

@ -1,11 +1,11 @@
{
"kind": "discovery#restDescription",
"etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/9Y-B0QHiU2mw4FGTgPCBJA_ja7U\"",
"etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/RJ9KKUbfMw7IvtOPKrwn45TxAuo\"",
"discoveryVersion": "v1",
"id": "bigquery:v2",
"name": "bigquery",
"version": "v2",
"revision": "20170903",
"revision": "20170910",
"title": "BigQuery API",
"description": "A data platform for customers to create, manage, share and query data.",
"ownerDomain": "google.com",
@ -1242,6 +1242,11 @@
"description": "[Output-only] Total bytes processed for the job.",
"format": "int64"
},
"totalSlotMs": {
"type": "string",
"description": "[Output-only] Slot-milliseconds for the job.",
"format": "int64"
},
"undeclaredQueryParameters": {
"type": "array",
"description": "[Output-only, Experimental] Standard SQL only: list of undeclared query parameters detected during a dry run validation.",

View File

@ -1954,6 +1954,9 @@ type JobStatistics2 struct {
// TotalBytesProcessed: [Output-only] Total bytes processed for the job.
TotalBytesProcessed int64 `json:"totalBytesProcessed,omitempty,string"`
// TotalSlotMs: [Output-only] Slot-milliseconds for the job.
TotalSlotMs int64 `json:"totalSlotMs,omitempty,string"`
// UndeclaredQueryParameters: [Output-only, Experimental] Standard SQL
// only: list of undeclared query parameters detected during a dry run
// validation.

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
// Package bigquerydatatransfer provides access to the BigQuery Data Transfer Service API.
// Package bigquerydatatransfer provides access to the BigQuery Data Transfer API.
//
// See https://cloud.google.com/bigquery/
//
@ -524,44 +524,6 @@ type Empty struct {
googleapi.ServerResponse `json:"-"`
}
// IsEnabledRequest: A request to determine whether data transfer is
// enabled for the project.
type IsEnabledRequest struct {
}
// IsEnabledResponse: A response to indicate whether data transfer is
// enabled for the project.
type IsEnabledResponse struct {
// Enabled: Indicates whether the project is enabled.
Enabled bool `json:"enabled,omitempty"`
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "Enabled") 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. "Enabled") 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 *IsEnabledResponse) MarshalJSON() ([]byte, error) {
type noMethod IsEnabledResponse
raw := noMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// ListDataSourcesResponse: Returns list of supported data sources and
// their metadata.
type ListDataSourcesResponse struct {
@ -574,7 +536,7 @@ type ListDataSourcesResponse struct {
// this token can be used as the
// `ListDataSourcesRequest.page_token`
// to request the next page of list results.
// @OutputOnly
// Output only.
NextPageToken string `json:"nextPageToken,omitempty"`
// ServerResponse contains the HTTP response code and headers from the
@ -819,13 +781,17 @@ func (s *Location) MarshalJSON() ([]byte, error) {
// ScheduleTransferRunsRequest: A request to schedule transfer runs for
// a time range.
type ScheduleTransferRunsRequest struct {
// RangeEndTime: End time of the range of transfer runs.
RangeEndTime string `json:"rangeEndTime,omitempty"`
// EndTime: End time of the range of transfer runs. For
// example,
// "2017-05-30T00:00:00+00:00".
EndTime string `json:"endTime,omitempty"`
// RangeStartTime: Start time of the range of transfer runs.
RangeStartTime string `json:"rangeStartTime,omitempty"`
// StartTime: Start time of the range of transfer runs. For
// example,
// "2017-05-25T00:00:00+00:00".
StartTime string `json:"startTime,omitempty"`
// ForceSendFields is a list of field names (e.g. "RangeEndTime") to
// ForceSendFields is a list of field names (e.g. "EndTime") 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
@ -833,10 +799,10 @@ type ScheduleTransferRunsRequest struct {
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "RangeEndTime") 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
// NullFields is a list of field names (e.g. "EndTime") 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:"-"`
@ -851,14 +817,14 @@ func (s *ScheduleTransferRunsRequest) MarshalJSON() ([]byte, error) {
// ScheduleTransferRunsResponse: A response to schedule transfer runs
// for a time range.
type ScheduleTransferRunsResponse struct {
// CreatedRuns: The transfer runs that were created.
CreatedRuns []*TransferRun `json:"createdRuns,omitempty"`
// Runs: The transfer runs that were scheduled.
Runs []*TransferRun `json:"runs,omitempty"`
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "CreatedRuns") to
// ForceSendFields is a list of field names (e.g. "Runs") 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
@ -866,38 +832,8 @@ type ScheduleTransferRunsResponse struct {
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "CreatedRuns") 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 *ScheduleTransferRunsResponse) MarshalJSON() ([]byte, error) {
type noMethod ScheduleTransferRunsResponse
raw := noMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// SetEnabledRequest: A request to set whether data transfer is enabled
// or disabled for a project.
type SetEnabledRequest struct {
// Enabled: Whether data transfer should be enabled or disabled for the
// project.
Enabled bool `json:"enabled,omitempty"`
// ForceSendFields is a list of field names (e.g. "Enabled") 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. "Enabled") to include in
// API requests with the JSON null value. By default, fields with empty
// NullFields is a list of field names (e.g. "Runs") 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.
@ -905,8 +841,8 @@ type SetEnabledRequest struct {
NullFields []string `json:"-"`
}
func (s *SetEnabledRequest) MarshalJSON() ([]byte, error) {
type noMethod SetEnabledRequest
func (s *ScheduleTransferRunsResponse) MarshalJSON() ([]byte, error) {
type noMethod ScheduleTransferRunsResponse
raw := noMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
@ -955,13 +891,14 @@ type TransferConfig struct {
// DisplayName: User specified display name for the data transfer.
DisplayName string `json:"displayName,omitempty"`
// Name: The resource name of the transfer run.
// Transfer run names have the
// Name: The resource name of the transfer config.
// Transfer config names have the
// form
// `projects/{project_id}/transferConfigs/{config_id}`.
// Where `config_id` is usually a uuid, even though it is not
// guaranteed or required. The name is ignored when creating a transfer
// run.
// guaranteed or required. The name is ignored when creating a
// transfer
// config.
Name string `json:"name,omitempty"`
// NextRunTime: Next time when data transfer will run.
@ -1009,7 +946,7 @@ type TransferConfig struct {
// Output only.
UpdateTime string `json:"updateTime,omitempty"`
// UserId: GaiaID of the user on whose behalf transfer is done.
// UserId: Unique ID of the user on whose behalf transfer is done.
// Applicable only
// to data sources that do not support service accounts. When set to
// 0,
@ -1163,7 +1100,11 @@ type TransferRun struct {
// Output only.
UpdateTime string `json:"updateTime,omitempty"`
// UserId: The user id for this transfer run.
// UserId: Unique ID of the user on whose behalf transfer is done.
// Applicable only
// to data sources that do not support service accounts. When set to
// 0,
// the data source service account credentials are used.
// Output only.
UserId int64 `json:"userId,omitempty,string"`
@ -1194,283 +1135,6 @@ func (s *TransferRun) MarshalJSON() ([]byte, error) {
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// method id "bigquerydatatransfer.projects.isEnabled":
type ProjectsIsEnabledCall struct {
s *Service
name string
isenabledrequest *IsEnabledRequest
urlParams_ gensupport.URLParams
ctx_ context.Context
header_ http.Header
}
// IsEnabled: Returns true if data transfer is enabled for a project.
func (r *ProjectsService) IsEnabled(name string, isenabledrequest *IsEnabledRequest) *ProjectsIsEnabledCall {
c := &ProjectsIsEnabledCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.name = name
c.isenabledrequest = isenabledrequest
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 *ProjectsIsEnabledCall) Fields(s ...googleapi.Field) *ProjectsIsEnabledCall {
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 *ProjectsIsEnabledCall) Context(ctx context.Context) *ProjectsIsEnabledCall {
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 *ProjectsIsEnabledCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *ProjectsIsEnabledCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := make(http.Header)
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.isenabledrequest)
if err != nil {
return nil, err
}
reqHeaders.Set("Content-Type", "application/json")
c.urlParams_.Set("alt", alt)
urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:isEnabled")
urls += "?" + c.urlParams_.Encode()
req, _ := http.NewRequest("POST", urls, body)
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"name": c.name,
})
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "bigquerydatatransfer.projects.isEnabled" call.
// Exactly one of *IsEnabledResponse or error will be non-nil. Any
// non-2xx status code is an error. Response headers are in either
// *IsEnabledResponse.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 *ProjectsIsEnabledCall) Do(opts ...googleapi.CallOption) (*IsEnabledResponse, 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 := &IsEnabledResponse{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
if err := json.NewDecoder(res.Body).Decode(target); err != nil {
return nil, err
}
return ret, nil
// {
// "description": "Returns true if data transfer is enabled for a project.",
// "flatPath": "v1/projects/{projectsId}:isEnabled",
// "httpMethod": "POST",
// "id": "bigquerydatatransfer.projects.isEnabled",
// "parameterOrder": [
// "name"
// ],
// "parameters": {
// "name": {
// "description": "The name of the project resource in the form:\n`projects/{project_id}`",
// "location": "path",
// "pattern": "^projects/[^/]+$",
// "required": true,
// "type": "string"
// }
// },
// "path": "v1/{+name}:isEnabled",
// "request": {
// "$ref": "IsEnabledRequest"
// },
// "response": {
// "$ref": "IsEnabledResponse"
// },
// "scopes": [
// "https://www.googleapis.com/auth/bigquery",
// "https://www.googleapis.com/auth/cloud-platform",
// "https://www.googleapis.com/auth/cloud-platform.read-only"
// ]
// }
}
// method id "bigquerydatatransfer.projects.setEnabled":
type ProjectsSetEnabledCall struct {
s *Service
name string
setenabledrequest *SetEnabledRequest
urlParams_ gensupport.URLParams
ctx_ context.Context
header_ http.Header
}
// SetEnabled: Enables or disables data transfer for a project.
// This
// method requires the additional scope
// of
// 'https://www.googleapis.com/auth/cloudplatformprojects'
// to manage the cloud project permissions.
func (r *ProjectsService) SetEnabled(name string, setenabledrequest *SetEnabledRequest) *ProjectsSetEnabledCall {
c := &ProjectsSetEnabledCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.name = name
c.setenabledrequest = setenabledrequest
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 *ProjectsSetEnabledCall) Fields(s ...googleapi.Field) *ProjectsSetEnabledCall {
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 *ProjectsSetEnabledCall) Context(ctx context.Context) *ProjectsSetEnabledCall {
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 *ProjectsSetEnabledCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *ProjectsSetEnabledCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := make(http.Header)
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.setenabledrequest)
if err != nil {
return nil, err
}
reqHeaders.Set("Content-Type", "application/json")
c.urlParams_.Set("alt", alt)
urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setEnabled")
urls += "?" + c.urlParams_.Encode()
req, _ := http.NewRequest("POST", urls, body)
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"name": c.name,
})
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "bigquerydatatransfer.projects.setEnabled" call.
// Exactly one of *Empty or error will be non-nil. Any non-2xx status
// code is an error. Response headers are in either
// *Empty.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 *ProjectsSetEnabledCall) Do(opts ...googleapi.CallOption) (*Empty, 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 := &Empty{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
if err := json.NewDecoder(res.Body).Decode(target); err != nil {
return nil, err
}
return ret, nil
// {
// "description": "Enables or disables data transfer for a project. This\nmethod requires the additional scope of\n'https://www.googleapis.com/auth/cloudplatformprojects'\nto manage the cloud project permissions.",
// "flatPath": "v1/projects/{projectsId}:setEnabled",
// "httpMethod": "POST",
// "id": "bigquerydatatransfer.projects.setEnabled",
// "parameterOrder": [
// "name"
// ],
// "parameters": {
// "name": {
// "description": "The name of the project resource in the form:\n`projects/{project_id}`",
// "location": "path",
// "pattern": "^projects/[^/]+$",
// "required": true,
// "type": "string"
// }
// },
// "path": "v1/{+name}:setEnabled",
// "request": {
// "$ref": "SetEnabledRequest"
// },
// "response": {
// "$ref": "Empty"
// },
// "scopes": [
// "https://www.googleapis.com/auth/cloud-platform"
// ]
// }
}
// method id "bigquerydatatransfer.projects.dataSources.checkValidCreds":
type ProjectsDataSourcesCheckValidCredsCall struct {
@ -1485,6 +1149,13 @@ type ProjectsDataSourcesCheckValidCredsCall struct {
// CheckValidCreds: Returns true if valid credentials exist for the
// given data source and
// requesting user.
// Some data sources doesn't support service account, so we need to talk
// to
// them on behalf of the end user. This API just checks whether we have
// OAuth
// token for the particular user, which is a pre-requisite before user
// can
// create a transfer config.
func (r *ProjectsDataSourcesService) CheckValidCreds(name string, checkvalidcredsrequest *CheckValidCredsRequest) *ProjectsDataSourcesCheckValidCredsCall {
c := &ProjectsDataSourcesCheckValidCredsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.name = name
@ -1578,7 +1249,7 @@ func (c *ProjectsDataSourcesCheckValidCredsCall) Do(opts ...googleapi.CallOption
}
return ret, nil
// {
// "description": "Returns true if valid credentials exist for the given data source and\nrequesting user.",
// "description": "Returns true if valid credentials exist for the given data source and\nrequesting user.\nSome data sources doesn't support service account, so we need to talk to\nthem on behalf of the end user. This API just checks whether we have OAuth\ntoken for the particular user, which is a pre-requisite before user can\ncreate a transfer config.",
// "flatPath": "v1/projects/{projectsId}/dataSources/{dataSourcesId}:checkValidCreds",
// "httpMethod": "POST",
// "id": "bigquerydatatransfer.projects.dataSources.checkValidCreds",
@ -2086,143 +1757,6 @@ func (c *ProjectsLocationsGetCall) Do(opts ...googleapi.CallOption) (*Location,
}
// method id "bigquerydatatransfer.projects.locations.isEnabled":
type ProjectsLocationsIsEnabledCall struct {
s *Service
name string
isenabledrequest *IsEnabledRequest
urlParams_ gensupport.URLParams
ctx_ context.Context
header_ http.Header
}
// IsEnabled: Returns true if data transfer is enabled for a project.
func (r *ProjectsLocationsService) IsEnabled(name string, isenabledrequest *IsEnabledRequest) *ProjectsLocationsIsEnabledCall {
c := &ProjectsLocationsIsEnabledCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.name = name
c.isenabledrequest = isenabledrequest
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 *ProjectsLocationsIsEnabledCall) Fields(s ...googleapi.Field) *ProjectsLocationsIsEnabledCall {
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 *ProjectsLocationsIsEnabledCall) Context(ctx context.Context) *ProjectsLocationsIsEnabledCall {
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 *ProjectsLocationsIsEnabledCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *ProjectsLocationsIsEnabledCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := make(http.Header)
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.isenabledrequest)
if err != nil {
return nil, err
}
reqHeaders.Set("Content-Type", "application/json")
c.urlParams_.Set("alt", alt)
urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:isEnabled")
urls += "?" + c.urlParams_.Encode()
req, _ := http.NewRequest("POST", urls, body)
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"name": c.name,
})
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "bigquerydatatransfer.projects.locations.isEnabled" call.
// Exactly one of *IsEnabledResponse or error will be non-nil. Any
// non-2xx status code is an error. Response headers are in either
// *IsEnabledResponse.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 *ProjectsLocationsIsEnabledCall) Do(opts ...googleapi.CallOption) (*IsEnabledResponse, 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 := &IsEnabledResponse{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
if err := json.NewDecoder(res.Body).Decode(target); err != nil {
return nil, err
}
return ret, nil
// {
// "description": "Returns true if data transfer is enabled for a project.",
// "flatPath": "v1/projects/{projectsId}/locations/{locationsId}:isEnabled",
// "httpMethod": "POST",
// "id": "bigquerydatatransfer.projects.locations.isEnabled",
// "parameterOrder": [
// "name"
// ],
// "parameters": {
// "name": {
// "description": "The name of the project resource in the form:\n`projects/{project_id}`",
// "location": "path",
// "pattern": "^projects/[^/]+/locations/[^/]+$",
// "required": true,
// "type": "string"
// }
// },
// "path": "v1/{+name}:isEnabled",
// "request": {
// "$ref": "IsEnabledRequest"
// },
// "response": {
// "$ref": "IsEnabledResponse"
// },
// "scopes": [
// "https://www.googleapis.com/auth/bigquery",
// "https://www.googleapis.com/auth/cloud-platform",
// "https://www.googleapis.com/auth/cloud-platform.read-only"
// ]
// }
}
// method id "bigquerydatatransfer.projects.locations.list":
type ProjectsLocationsListCall struct {
@ -2423,146 +1957,6 @@ func (c *ProjectsLocationsListCall) Pages(ctx context.Context, f func(*ListLocat
}
}
// method id "bigquerydatatransfer.projects.locations.setEnabled":
type ProjectsLocationsSetEnabledCall struct {
s *Service
name string
setenabledrequest *SetEnabledRequest
urlParams_ gensupport.URLParams
ctx_ context.Context
header_ http.Header
}
// SetEnabled: Enables or disables data transfer for a project.
// This
// method requires the additional scope
// of
// 'https://www.googleapis.com/auth/cloudplatformprojects'
// to manage the cloud project permissions.
func (r *ProjectsLocationsService) SetEnabled(name string, setenabledrequest *SetEnabledRequest) *ProjectsLocationsSetEnabledCall {
c := &ProjectsLocationsSetEnabledCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.name = name
c.setenabledrequest = setenabledrequest
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 *ProjectsLocationsSetEnabledCall) Fields(s ...googleapi.Field) *ProjectsLocationsSetEnabledCall {
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 *ProjectsLocationsSetEnabledCall) Context(ctx context.Context) *ProjectsLocationsSetEnabledCall {
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 *ProjectsLocationsSetEnabledCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *ProjectsLocationsSetEnabledCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := make(http.Header)
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.setenabledrequest)
if err != nil {
return nil, err
}
reqHeaders.Set("Content-Type", "application/json")
c.urlParams_.Set("alt", alt)
urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setEnabled")
urls += "?" + c.urlParams_.Encode()
req, _ := http.NewRequest("POST", urls, body)
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"name": c.name,
})
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "bigquerydatatransfer.projects.locations.setEnabled" call.
// Exactly one of *Empty or error will be non-nil. Any non-2xx status
// code is an error. Response headers are in either
// *Empty.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 *ProjectsLocationsSetEnabledCall) Do(opts ...googleapi.CallOption) (*Empty, 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 := &Empty{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
if err := json.NewDecoder(res.Body).Decode(target); err != nil {
return nil, err
}
return ret, nil
// {
// "description": "Enables or disables data transfer for a project. This\nmethod requires the additional scope of\n'https://www.googleapis.com/auth/cloudplatformprojects'\nto manage the cloud project permissions.",
// "flatPath": "v1/projects/{projectsId}/locations/{locationsId}:setEnabled",
// "httpMethod": "POST",
// "id": "bigquerydatatransfer.projects.locations.setEnabled",
// "parameterOrder": [
// "name"
// ],
// "parameters": {
// "name": {
// "description": "The name of the project resource in the form:\n`projects/{project_id}`",
// "location": "path",
// "pattern": "^projects/[^/]+/locations/[^/]+$",
// "required": true,
// "type": "string"
// }
// },
// "path": "v1/{+name}:setEnabled",
// "request": {
// "$ref": "SetEnabledRequest"
// },
// "response": {
// "$ref": "Empty"
// },
// "scopes": [
// "https://www.googleapis.com/auth/cloud-platform"
// ]
// }
}
// method id "bigquerydatatransfer.projects.locations.dataSources.checkValidCreds":
type ProjectsLocationsDataSourcesCheckValidCredsCall struct {
@ -2577,6 +1971,13 @@ type ProjectsLocationsDataSourcesCheckValidCredsCall struct {
// CheckValidCreds: Returns true if valid credentials exist for the
// given data source and
// requesting user.
// Some data sources doesn't support service account, so we need to talk
// to
// them on behalf of the end user. This API just checks whether we have
// OAuth
// token for the particular user, which is a pre-requisite before user
// can
// create a transfer config.
func (r *ProjectsLocationsDataSourcesService) CheckValidCreds(name string, checkvalidcredsrequest *CheckValidCredsRequest) *ProjectsLocationsDataSourcesCheckValidCredsCall {
c := &ProjectsLocationsDataSourcesCheckValidCredsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.name = name
@ -2670,7 +2071,7 @@ func (c *ProjectsLocationsDataSourcesCheckValidCredsCall) Do(opts ...googleapi.C
}
return ret, nil
// {
// "description": "Returns true if valid credentials exist for the given data source and\nrequesting user.",
// "description": "Returns true if valid credentials exist for the given data source and\nrequesting user.\nSome data sources doesn't support service account, so we need to talk to\nthem on behalf of the end user. This API just checks whether we have OAuth\ntoken for the particular user, which is a pre-requisite before user can\ncreate a transfer config.",
// "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataSources/{dataSourcesId}:checkValidCreds",
// "httpMethod": "POST",
// "id": "bigquerydatatransfer.projects.locations.dataSources.checkValidCreds",
@ -3840,7 +3241,7 @@ func (c *ProjectsLocationsTransferConfigsPatchCall) Do(opts ...googleapi.CallOpt
// "type": "string"
// },
// "name": {
// "description": "The resource name of the transfer run.\nTransfer run names have the form\n`projects/{project_id}/transferConfigs/{config_id}`.\nWhere `config_id` is usually a uuid, even though it is not\nguaranteed or required. The name is ignored when creating a transfer run.",
// "description": "The resource name of the transfer config.\nTransfer config names have the form\n`projects/{project_id}/transferConfigs/{config_id}`.\nWhere `config_id` is usually a uuid, even though it is not\nguaranteed or required. The name is ignored when creating a transfer\nconfig.",
// "location": "path",
// "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$",
// "required": true,
@ -5538,7 +4939,7 @@ func (c *ProjectsTransferConfigsPatchCall) Do(opts ...googleapi.CallOption) (*Tr
// "type": "string"
// },
// "name": {
// "description": "The resource name of the transfer run.\nTransfer run names have the form\n`projects/{project_id}/transferConfigs/{config_id}`.\nWhere `config_id` is usually a uuid, even though it is not\nguaranteed or required. The name is ignored when creating a transfer run.",
// "description": "The resource name of the transfer config.\nTransfer config names have the form\n`projects/{project_id}/transferConfigs/{config_id}`.\nWhere `config_id` is usually a uuid, even though it is not\nguaranteed or required. The name is ignored when creating a transfer\nconfig.",
// "location": "path",
// "pattern": "^projects/[^/]+/transferConfigs/[^/]+$",
// "required": true,

View File

@ -23,7 +23,7 @@
"basePath": "/blogger/v2/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "blogger/v2/",
"batchPath": "batch",
"batchPath": "batch/blogger/v2",
"parameters": {
"alt": {
"type": "string",

View File

@ -23,7 +23,7 @@
"basePath": "/blogger/v3/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "blogger/v3/",
"batchPath": "batch",
"batchPath": "batch/blogger/v3",
"parameters": {
"alt": {
"type": "string",

View File

@ -1,11 +1,11 @@
{
"kind": "discovery#restDescription",
"etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/o_EybjCqMtVYBedHGweVn2CP_Ko\"",
"etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/uAzZjTyNjvCXQxJAVHPs_CfUo-M\"",
"discoveryVersion": "v1",
"id": "calendar:v3",
"name": "calendar",
"version": "v3",
"revision": "20170903",
"revision": "20170905",
"title": "Calendar API",
"description": "Manipulates events and other calendar data.",
"ownerDomain": "google.com",
@ -20,7 +20,7 @@
"basePath": "/calendar/v3/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "calendar/v3/",
"batchPath": "batch",
"batchPath": "batch/calendar/v3",
"parameters": {
"alt": {
"type": "string",

View File

@ -21,7 +21,7 @@
"basePath": "/civicinfo/v2/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "civicinfo/v2/",
"batchPath": "batch",
"batchPath": "batch/civicinfo/v2",
"parameters": {
"alt": {
"type": "string",

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -141,6 +141,7 @@ type ProjectsTriggersService struct {
// - $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource
// or
// resolved from the specified branch or tag.
// - $SHORT_SHA: first 7 characters of $REVISION_ID or $COMMIT_SHA.
type Build struct {
// BuildTriggerId: The ID of the BuildTrigger that triggered this build,
// if it was

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,15 @@
{
"canonicalName": "Clouderrorreporting",
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/cloud-platform": {
"description": "View and manage your data across Google Cloud Platform services"
}
}
}
},
"rootUrl": "https://clouderrorreporting.googleapis.com/",
"ownerDomain": "google.com",
"name": "clouderrorreporting",
"batchPath": "batch",
@ -6,51 +17,57 @@
"ownerName": "Google",
"resources": {
"projects": {
"methods": {
"deleteEvents": {
"httpMethod": "DELETE",
"response": {
"$ref": "DeleteEventsResponse"
},
"parameterOrder": [
"projectName"
],
"parameters": {
"projectName": {
"description": "[Required] The resource name of the Google Cloud Platform project. Written\nas `projects/` plus the\n[Google Cloud Platform project\nID](https://support.google.com/cloud/answer/6158840).\nExample: `projects/my-project-123`.",
"type": "string",
"required": true,
"pattern": "^projects/[^/]+$",
"location": "path"
}
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"flatPath": "v1beta1/projects/{projectsId}/events",
"path": "v1beta1/{+projectName}/events",
"id": "clouderrorreporting.projects.deleteEvents",
"description": "Deletes all error events of a given project."
}
},
"resources": {
"events": {
"methods": {
"list": {
"description": "Lists the specified events.",
"httpMethod": "GET",
"response": {
"$ref": "ListEventsResponse"
},
"parameterOrder": [
"projectName"
],
"httpMethod": "GET",
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"parameters": {
"groupId": {
"description": "[Required] The group for which events shall be returned.",
"type": "string",
"location": "query"
},
"serviceFilter.service": {
"description": "[Optional] The exact value to match against\n[`ServiceContext.service`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.service).",
"type": "string",
"location": "query"
},
"pageToken": {
"description": "[Optional] A `next_page_token` provided by a previous response.",
"type": "string",
"location": "query"
},
"pageSize": {
"format": "int32",
"description": "[Optional] The maximum number of results to return per response.",
"type": "integer",
"location": "query"
},
"serviceFilter.version": {
"serviceFilter.resourceType": {
"location": "query",
"description": "[Optional] The exact value to match against\n[`ServiceContext.version`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.version).",
"description": "[Optional] The exact value to match against\n[`ServiceContext.resource_type`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.resource_type).",
"type": "string"
},
"serviceFilter.resourceType": {
"description": "[Optional] The exact value to match against\n[`ServiceContext.resource_type`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.resource_type).",
"type": "string",
"location": "query"
},
"timeRange.period": {
"description": "Restricts the query to the specified time range.",
"type": "string",
"location": "query",
"enum": [
"PERIOD_UNSPECIFIED",
"PERIOD_1_HOUR",
@ -58,27 +75,54 @@
"PERIOD_1_DAY",
"PERIOD_1_WEEK",
"PERIOD_30_DAYS"
],
"description": "Restricts the query to the specified time range.",
]
},
"projectName": {
"description": "[Required] The resource name of the Google Cloud Platform project. Written\nas `projects/` plus the\n[Google Cloud Platform project\nID](https://support.google.com/cloud/answer/6158840).\nExample: `projects/my-project-123`.",
"type": "string",
"required": true,
"pattern": "^projects/[^/]+$",
"location": "path"
},
"groupId": {
"description": "[Required] The group for which events shall be returned.",
"type": "string",
"location": "query"
},
"projectName": {
"pattern": "^projects/[^/]+$",
"location": "path",
"description": "[Required] The resource name of the Google Cloud Platform project. Written\nas `projects/` plus the\n[Google Cloud Platform project\nID](https://support.google.com/cloud/answer/6158840).\nExample: `projects/my-project-123`.",
"serviceFilter.service": {
"location": "query",
"description": "[Optional] The exact value to match against\n[`ServiceContext.service`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.service).",
"type": "string"
},
"pageToken": {
"location": "query",
"description": "[Optional] A `next_page_token` provided by a previous response.",
"type": "string"
},
"pageSize": {
"location": "query",
"format": "int32",
"description": "[Optional] The maximum number of results to return per response.",
"type": "integer"
},
"serviceFilter.version": {
"description": "[Optional] The exact value to match against\n[`ServiceContext.version`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.version).",
"type": "string",
"required": true
"location": "query"
}
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"flatPath": "v1beta1/projects/{projectsId}/events",
"id": "clouderrorreporting.projects.events.list",
"path": "v1beta1/{+projectName}/events",
"id": "clouderrorreporting.projects.events.list"
"description": "Lists the specified events."
},
"report": {
"path": "v1beta1/{+projectName}/events:report",
"id": "clouderrorreporting.projects.events.report",
"request": {
"$ref": "ReportedErrorEvent"
},
"description": "Report an individual error event.\n\nThis endpoint accepts \u003cstrong\u003eeither\u003c/strong\u003e an OAuth token,\n\u003cstrong\u003eor\u003c/strong\u003e an\n\u003ca href=\"https://support.google.com/cloud/answer/6158862\"\u003eAPI key\u003c/a\u003e\nfor authentication. To use an API key, append it to the URL as the value of\na `key` parameter. For example:\n\u003cpre\u003ePOST https://clouderrorreporting.googleapis.com/v1beta1/projects/example-project/events:report?key=123ABC456\u003c/pre\u003e",
"httpMethod": "POST",
"parameterOrder": [
"projectName"
@ -86,6 +130,9 @@
"response": {
"$ref": "ReportErrorEventResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"parameters": {
"projectName": {
"pattern": "^projects/[^/]+$",
@ -95,45 +142,31 @@
"required": true
}
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"flatPath": "v1beta1/projects/{projectsId}/events:report",
"path": "v1beta1/{+projectName}/events:report",
"id": "clouderrorreporting.projects.events.report",
"description": "Report an individual error event.\n\nThis endpoint accepts \u003cstrong\u003eeither\u003c/strong\u003e an OAuth token,\n\u003cstrong\u003eor\u003c/strong\u003e an\n\u003ca href=\"https://support.google.com/cloud/answer/6158862\"\u003eAPI key\u003c/a\u003e\nfor authentication. To use an API key, append it to the URL as the value of\na `key` parameter. For example:\n\u003cpre\u003ePOST https://clouderrorreporting.googleapis.com/v1beta1/projects/example-project/events:report?key=123ABC456\u003c/pre\u003e",
"request": {
"$ref": "ReportedErrorEvent"
}
"flatPath": "v1beta1/projects/{projectsId}/events:report"
}
}
},
"groupStats": {
"methods": {
"list": {
"httpMethod": "GET",
"response": {
"$ref": "ListGroupStatsResponse"
},
"parameterOrder": [
"projectName"
],
"httpMethod": "GET",
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"parameters": {
"timedCountDuration": {
"format": "google-duration",
"description": "[Optional] The preferred duration for a single returned `TimedCount`.\nIf not set, no timed counts are returned.",
"type": "string",
"location": "query"
},
"pageToken": {
"location": "query",
"description": "[Optional] A `next_page_token` provided by a previous response. To view\nadditional results, pass this token along with the identical query\nparameters as the first request.",
"type": "string",
"location": "query"
"type": "string"
},
"timeRange.period": {
"location": "query",
"enum": [
"PERIOD_UNSPECIFIED",
"PERIOD_1_HOUR",
@ -143,8 +176,7 @@
"PERIOD_30_DAYS"
],
"description": "Restricts the query to the specified time range.",
"type": "string",
"location": "query"
"type": "string"
},
"alignment": {
"location": "query",
@ -163,9 +195,9 @@
"location": "query"
},
"serviceFilter.service": {
"location": "query",
"description": "[Optional] The exact value to match against\n[`ServiceContext.service`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.service).",
"type": "string"
"type": "string",
"location": "query"
},
"pageSize": {
"location": "query",
@ -173,11 +205,6 @@
"description": "[Optional] The maximum number of results to return per response.\nDefault is 20.",
"type": "integer"
},
"serviceFilter.version": {
"description": "[Optional] The exact value to match against\n[`ServiceContext.version`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.version).",
"type": "string",
"location": "query"
},
"order": {
"location": "query",
"enum": [
@ -190,69 +217,52 @@
"description": "[Optional] The sort order in which the results are returned.\nDefault is `COUNT_DESC`.",
"type": "string"
},
"serviceFilter.version": {
"description": "[Optional] The exact value to match against\n[`ServiceContext.version`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.version).",
"type": "string",
"location": "query"
},
"serviceFilter.resourceType": {
"description": "[Optional] The exact value to match against\n[`ServiceContext.resource_type`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.resource_type).",
"type": "string",
"location": "query"
},
"alignmentTime": {
"format": "google-datetime",
"description": "[Optional] Time where the timed counts shall be aligned if rounded\nalignment is chosen. Default is 00:00 UTC.",
"type": "string",
"location": "query"
},
"serviceFilter.resourceType": {
"location": "query",
"description": "[Optional] The exact value to match against\n[`ServiceContext.resource_type`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.resource_type).",
"type": "string"
},
"projectName": {
"location": "path",
"description": "[Required] The resource name of the Google Cloud Platform project. Written\nas \u003ccode\u003eprojects/\u003c/code\u003e plus the\n\u003ca href=\"https://support.google.com/cloud/answer/6158840\"\u003eGoogle Cloud\nPlatform project ID\u003c/a\u003e.\n\nExample: \u003ccode\u003eprojects/my-project-123\u003c/code\u003e.",
"type": "string",
"required": true,
"pattern": "^projects/[^/]+$",
"location": "path"
"pattern": "^projects/[^/]+$"
},
"timedCountDuration": {
"location": "query",
"format": "google-duration",
"description": "[Optional] The preferred duration for a single returned `TimedCount`.\nIf not set, no timed counts are returned.",
"type": "string"
}
},
"flatPath": "v1beta1/projects/{projectsId}/groupStats",
"path": "v1beta1/{+projectName}/groupStats",
"id": "clouderrorreporting.projects.groupStats.list",
"path": "v1beta1/{+projectName}/groupStats",
"description": "Lists the specified groups."
}
}
},
"groups": {
"methods": {
"update": {
"description": "Replace the data for the specified group.\nFails if the group does not exist.",
"request": {
"$ref": "ErrorGroup"
},
"httpMethod": "PUT",
"parameterOrder": [
"name"
],
"response": {
"$ref": "ErrorGroup"
},
"parameters": {
"name": {
"pattern": "^projects/[^/]+/groups/[^/]+$",
"location": "path",
"description": "The group resource name.\nExample: \u003ccode\u003eprojects/my-project-123/groups/my-groupid\u003c/code\u003e",
"type": "string",
"required": true
}
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"flatPath": "v1beta1/projects/{projectsId}/groups/{groupsId}",
"path": "v1beta1/{+name}",
"id": "clouderrorreporting.projects.groups.update"
},
"get": {
"response": {
"$ref": "ErrorGroup"
},
"parameterOrder": [
"groupName"
],
"response": {
"$ref": "ErrorGroup"
},
"httpMethod": "GET",
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
@ -270,78 +280,89 @@
"id": "clouderrorreporting.projects.groups.get",
"path": "v1beta1/{+groupName}",
"description": "Get the specified group."
},
"update": {
"response": {
"$ref": "ErrorGroup"
},
"parameterOrder": [
"name"
],
"httpMethod": "PUT",
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"parameters": {
"name": {
"location": "path",
"description": "The group resource name.\nExample: \u003ccode\u003eprojects/my-project-123/groups/my-groupid\u003c/code\u003e",
"type": "string",
"required": true,
"pattern": "^projects/[^/]+/groups/[^/]+$"
}
},
"flatPath": "v1beta1/projects/{projectsId}/groups/{groupsId}",
"id": "clouderrorreporting.projects.groups.update",
"path": "v1beta1/{+name}",
"request": {
"$ref": "ErrorGroup"
},
"description": "Replace the data for the specified group.\nFails if the group does not exist."
}
}
}
},
"methods": {
"deleteEvents": {
"response": {
"$ref": "DeleteEventsResponse"
},
"parameterOrder": [
"projectName"
],
"httpMethod": "DELETE",
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"parameters": {
"projectName": {
"description": "[Required] The resource name of the Google Cloud Platform project. Written\nas `projects/` plus the\n[Google Cloud Platform project\nID](https://support.google.com/cloud/answer/6158840).\nExample: `projects/my-project-123`.",
"type": "string",
"required": true,
"pattern": "^projects/[^/]+$",
"location": "path"
}
},
"flatPath": "v1beta1/projects/{projectsId}/events",
"id": "clouderrorreporting.projects.deleteEvents",
"path": "v1beta1/{+projectName}/events",
"description": "Deletes all error events of a given project."
}
}
}
},
"parameters": {
"oauth_token": {
"location": "query",
"description": "OAuth 2.0 token for the current user.",
"type": "string"
},
"bearer_token": {
"location": "query",
"description": "OAuth bearer token.",
"type": "string"
},
"upload_protocol": {
"location": "query",
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"type": "string",
"location": "query"
"type": "string"
},
"prettyPrint": {
"location": "query",
"description": "Returns response with indentations and line breaks.",
"default": "true",
"type": "boolean"
"type": "boolean",
"location": "query"
},
"uploadType": {
"location": "query",
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"type": "string",
"location": "query"
"type": "string"
},
"fields": {
"location": "query",
"description": "Selector specifying which fields to include in a partial response.",
"type": "string",
"location": "query"
"type": "string"
},
"callback": {
"location": "query",
"description": "JSONP",
"type": "string",
"location": "query"
"type": "string"
},
"$.xgafv": {
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"enum": [
"1",
"2"
],
"description": "V1 error format.",
"type": "string",
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query"
"type": "string"
},
"alt": {
"enum": [
@ -359,57 +380,91 @@
"description": "Data format for response.",
"default": "json"
},
"access_token": {
"location": "query",
"description": "OAuth access token.",
"type": "string"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"type": "string",
"location": "query"
},
"access_token": {
"location": "query",
"description": "OAuth access token.",
"type": "string"
},
"quotaUser": {
"location": "query",
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"type": "string",
"location": "query"
"type": "string"
},
"pp": {
"location": "query",
"description": "Pretty-print response.",
"default": "true",
"type": "boolean",
"location": "query"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"type": "string",
"location": "query"
},
"bearer_token": {
"description": "OAuth bearer token.",
"type": "string",
"location": "query"
"type": "boolean"
}
},
"version": "v1beta1",
"baseUrl": "https://clouderrorreporting.googleapis.com/",
"servicePath": "",
"description": "Groups and counts similar errors from cloud services and applications, reports new errors, and provides access to error groups and their associated errors.\n",
"kind": "discovery#restDescription",
"servicePath": "",
"basePath": "",
"documentationLink": "https://cloud.google.com/error-reporting/",
"revision": "20170825",
"id": "clouderrorreporting:v1beta1",
"documentationLink": "https://cloud.google.com/error-reporting/",
"revision": "20170914",
"discoveryVersion": "v1",
"version_module": true,
"schemas": {
"ListGroupStatsResponse": {
"description": "Contains a set of requested error group stats.",
"type": "object",
"properties": {
"timeRangeBegin": {
"format": "google-datetime",
"description": "The timestamp specifies the start time to which the request was restricted.\nThe start time is set based on the requested time range. It may be adjusted\nto a later time if a project has exceeded the storage quota and older data\nhas been deleted.",
"type": "string"
},
"errorGroupStats": {
"description": "The error group stats which match the given request.",
"items": {
"$ref": "ErrorGroupStats"
},
"type": "array"
},
"nextPageToken": {
"description": "If non-empty, more results are available.\nPass this token, along with the same query parameters as the first\nrequest, to view the next page of results.",
"type": "string"
}
},
"id": "ListGroupStatsResponse"
},
"SourceReference": {
"description": "A reference to a particular snapshot of the source tree used to build and\ndeploy an application.",
"type": "object",
"properties": {
"repository": {
"description": "Optional. A URI string identifying the repository.\nExample: \"https://github.com/GoogleCloudPlatform/kubernetes.git\"",
"type": "string"
},
"revisionId": {
"description": "The canonical and persistent identifier of the deployed revision.\nExample (git): \"0035781c50ec7aa23385dc841529ce8a4b70db1b\"",
"type": "string"
}
},
"id": "SourceReference"
},
"DeleteEventsResponse": {
"description": "Response message for deleting error events.",
"type": "object",
"properties": {},
"id": "DeleteEventsResponse"
},
"ErrorEvent": {
"description": "An error event which is returned by the Error Reporting system.",
"type": "object",
"properties": {
"context": {
"description": "Data about the context in which the error occurred.",
"$ref": "ErrorContext"
"$ref": "ErrorContext",
"description": "Data about the context in which the error occurred."
},
"message": {
"description": "The stack trace that was reported or logged by the service.",
@ -432,8 +487,8 @@
"type": "object",
"properties": {
"context": {
"description": "[Optional] A description of the context in which the error occurred.",
"$ref": "ErrorContext"
"$ref": "ErrorContext",
"description": "[Optional] A description of the context in which the error occurred."
},
"message": {
"description": "[Required] The error message.\nIf no `context.reportLocation` is provided, the message must contain a\nheader (typically consisting of the exception type name and an error\nmessage) and an exception stack trace in one of the supported programming\nlanguages and formats.\nSupported languages are Java, Python, JavaScript, Ruby, C#, PHP, and Go.\nSupported stack trace formats are:\n\n* **Java**: Must be the return value of [`Throwable.printStackTrace()`](https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html#printStackTrace%28%29).\n* **Python**: Must be the return value of [`traceback.format_exc()`](https://docs.python.org/2/library/traceback.html#traceback.format_exc).\n* **JavaScript**: Must be the value of [`error.stack`](https://github.com/v8/v8/wiki/Stack-Trace-API)\nas returned by V8.\n* **Ruby**: Must contain frames returned by [`Exception.backtrace`](https://ruby-doc.org/core-2.2.0/Exception.html#method-i-backtrace).\n* **C#**: Must be the return value of [`Exception.ToString()`](https://msdn.microsoft.com/en-us/library/system.exception.tostring.aspx).\n* **PHP**: Must start with `PHP (Notice|Parse error|Fatal error|Warning)`\nand contain the result of [`(string)$exception`](http://php.net/manual/en/exception.tostring.php).\n* **Go**: Must be the return value of [`runtime.Stack()`](https://golang.org/pkg/runtime/debug/#Stack).",
@ -452,7 +507,13 @@
"id": "ReportedErrorEvent"
},
"ErrorContext": {
"description": "A description of the context in which an error occurred.\nThis data should be provided by the application when reporting an error,\nunless the\nerror report has been generated automatically from Google App Engine logs.",
"type": "object",
"properties": {
"user": {
"description": "The user who caused or was affected by the crash.\nThis can be a user ID, an email address, or an arbitrary token that\nuniquely identifies the user.\nWhen sending an error report, leave this field empty if the user was not\nlogged in. In this case the\nError Reporting system will use other data, such as remote IP address, to\ndistinguish affected users. See `affected_users_count` in\n`ErrorGroupStats`.",
"type": "string"
},
"sourceReferences": {
"description": "Source code that was used to build the executable which has\ncaused the given error message.",
"items": {
@ -465,17 +526,11 @@
"description": "The location in the source code where the decision was made to\nreport the error, usually the place where it was logged.\nFor a logged exception this would be the source line where the\nexception is logged, usually close to the place where it was\ncaught."
},
"httpRequest": {
"description": "The HTTP request which was processed when the error was\ntriggered.",
"$ref": "HttpRequestContext"
},
"user": {
"description": "The user who caused or was affected by the crash.\nThis can be a user ID, an email address, or an arbitrary token that\nuniquely identifies the user.\nWhen sending an error report, leave this field empty if the user was not\nlogged in. In this case the\nError Reporting system will use other data, such as remote IP address, to\ndistinguish affected users. See `affected_users_count` in\n`ErrorGroupStats`.",
"type": "string"
"$ref": "HttpRequestContext",
"description": "The HTTP request which was processed when the error was\ntriggered."
}
},
"id": "ErrorContext",
"description": "A description of the context in which an error occurred.\nThis data should be provided by the application when reporting an error,\nunless the\nerror report has been generated automatically from Google App Engine logs.",
"type": "object"
"id": "ErrorContext"
},
"TrackingIssue": {
"properties": {
@ -492,6 +547,13 @@
"description": "Data extracted for a specific group based on certain filter criteria,\nsuch as a given time period and/or service filter.",
"type": "object",
"properties": {
"timedCounts": {
"description": "Approximate number of occurrences over time.\nTimed counts returned by ListGroups are guaranteed to be:\n\n- Inside the requested time interval\n- Non-overlapping, and\n- Ordered by ascending time.",
"items": {
"$ref": "TimedCount"
},
"type": "array"
},
"group": {
"$ref": "ErrorGroup",
"description": "Group data that is independent of the filter criteria."
@ -516,11 +578,6 @@
"description": "Approximate last occurrence that was ever seen for this group and\nwhich matches the given filter criteria, ignoring the time_range\nthat was specified in the request.",
"type": "string"
},
"numAffectedServices": {
"format": "int32",
"description": "The total number of services with a non-zero error count for the given\nfilter criteria.",
"type": "integer"
},
"affectedServices": {
"description": "Service contexts with a non-zero error count for the given filter\ncriteria. This list can be truncated if multiple services are affected.\nRefer to `num_affected_services` for the total count.",
"items": {
@ -528,23 +585,19 @@
},
"type": "array"
},
"numAffectedServices": {
"format": "int32",
"description": "The total number of services with a non-zero error count for the given\nfilter criteria.",
"type": "integer"
},
"representative": {
"$ref": "ErrorEvent",
"description": "An arbitrary event that is chosen as representative for the whole group.\nThe representative event is intended to be used as a quick preview for\nthe whole group. Events in the group are usually sufficiently similar\nto each other such that showing an arbitrary representative provides\ninsight into the characteristics of the group as a whole."
},
"timedCounts": {
"description": "Approximate number of occurrences over time.\nTimed counts returned by ListGroups are guaranteed to be:\n\n- Inside the requested time interval\n- Non-overlapping, and\n- Ordered by ascending time.",
"items": {
"$ref": "TimedCount"
},
"type": "array"
}
},
"id": "ErrorGroupStats"
},
"ListEventsResponse": {
"description": "Contains a set of requested error events.",
"type": "object",
"properties": {
"timeRangeBegin": {
"format": "google-datetime",
@ -563,15 +616,14 @@
"type": "string"
}
},
"id": "ListEventsResponse"
"id": "ListEventsResponse",
"description": "Contains a set of requested error events.",
"type": "object"
},
"TimedCount": {
"description": "The number of errors in a given time period.\nAll numbers are approximate since the error events are sampled\nbefore counting them.",
"type": "object",
"properties": {
"endTime": {
"format": "google-datetime",
"description": "End of the time period to which `count` refers (excluded).",
"type": "string"
},
"startTime": {
"format": "google-datetime",
"description": "Start of the time period to which `count` refers (included).",
@ -581,15 +633,16 @@
"format": "int64",
"description": "Approximate number of occurrences in the given time period.",
"type": "string"
},
"endTime": {
"format": "google-datetime",
"description": "End of the time period to which `count` refers (excluded).",
"type": "string"
}
},
"id": "TimedCount",
"description": "The number of errors in a given time period.\nAll numbers are approximate since the error events are sampled\nbefore counting them.",
"type": "object"
"id": "TimedCount"
},
"ErrorGroup": {
"description": "Description of a group of similar error events.",
"type": "object",
"properties": {
"trackingIssues": {
"description": "Associated tracking issues.",
@ -607,7 +660,9 @@
"type": "string"
}
},
"id": "ErrorGroup"
"id": "ErrorGroup",
"description": "Description of a group of similar error events.",
"type": "object"
},
"SourceLocation": {
"properties": {
@ -631,6 +686,10 @@
},
"ServiceContext": {
"properties": {
"resourceType": {
"description": "Type of the MonitoredResource. List of possible values:\nhttps://cloud.google.com/monitoring/api/resources\n\nValue is set automatically for incoming errors and must not be set when\nreporting errors.",
"type": "string"
},
"version": {
"description": "Represents the source code version that the developer provided,\nwhich could represent a version label or a Git SHA-1 hash, for example.\nFor App Engine standard environment, the version is set to the version of\nthe app.",
"type": "string"
@ -638,10 +697,6 @@
"service": {
"description": "An identifier of the service, such as the name of the\nexecutable, job, or Google App Engine service name. This field is expected\nto have a low number of values that are relatively stable over time, as\nopposed to `version`, which can be changed whenever new code is deployed.\n\nContains the service name for error reports extracted from Google\nApp Engine logs or `default` if the App Engine default service is used.",
"type": "string"
},
"resourceType": {
"description": "Type of the MonitoredResource. List of possible values:\nhttps://cloud.google.com/monitoring/api/resources\n\nValue is set automatically for incoming errors and must not be set when\nreporting errors.",
"type": "string"
}
},
"id": "ServiceContext",
@ -649,15 +704,20 @@
"type": "object"
},
"ReportErrorEventResponse": {
"properties": {},
"id": "ReportErrorEventResponse",
"description": "Response for reporting an individual error event.\nData may be added to this message in the future.",
"type": "object"
"type": "object",
"properties": {},
"id": "ReportErrorEventResponse"
},
"HttpRequestContext": {
"description": "HTTP request data that is related to a reported error.\nThis data should be provided by the application when reporting an error,\nunless the\nerror report has been generated automatically from Google App Engine logs.",
"type": "object",
"properties": {
"responseStatusCode": {
"format": "int32",
"description": "The HTTP response status code for the request.",
"type": "integer"
},
"method": {
"description": "The type of HTTP request, such as `GET`, `POST`, etc.",
"type": "string"
@ -677,74 +737,14 @@
"url": {
"description": "The URL of the request.",
"type": "string"
},
"responseStatusCode": {
"format": "int32",
"description": "The HTTP response status code for the request.",
"type": "integer"
}
},
"id": "HttpRequestContext"
},
"ListGroupStatsResponse": {
"description": "Contains a set of requested error group stats.",
"type": "object",
"properties": {
"nextPageToken": {
"description": "If non-empty, more results are available.\nPass this token, along with the same query parameters as the first\nrequest, to view the next page of results.",
"type": "string"
},
"timeRangeBegin": {
"format": "google-datetime",
"description": "The timestamp specifies the start time to which the request was restricted.\nThe start time is set based on the requested time range. It may be adjusted\nto a later time if a project has exceeded the storage quota and older data\nhas been deleted.",
"type": "string"
},
"errorGroupStats": {
"description": "The error group stats which match the given request.",
"items": {
"$ref": "ErrorGroupStats"
},
"type": "array"
}
},
"id": "ListGroupStatsResponse"
},
"SourceReference": {
"description": "A reference to a particular snapshot of the source tree used to build and\ndeploy an application.",
"type": "object",
"properties": {
"revisionId": {
"description": "The canonical and persistent identifier of the deployed revision.\nExample (git): \"0035781c50ec7aa23385dc841529ce8a4b70db1b\"",
"type": "string"
},
"repository": {
"description": "Optional. A URI string identifying the repository.\nExample: \"https://github.com/GoogleCloudPlatform/kubernetes.git\"",
"type": "string"
}
},
"id": "SourceReference"
},
"DeleteEventsResponse": {
"properties": {},
"id": "DeleteEventsResponse",
"description": "Response message for deleting error events.",
"type": "object"
}
},
"protocol": "rest",
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
"x32": "http://www.google.com/images/icons/product/search-32.gif",
"x16": "http://www.google.com/images/icons/product/search-16.gif"
},
"canonicalName": "Clouderrorreporting",
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/cloud-platform": {
"description": "View and manage your data across Google Cloud Platform services"
}
}
}
},
"rootUrl": "https://clouderrorreporting.googleapis.com/"
"protocol": "rest"
}

View File

@ -1,4 +1,14 @@
{
"canonicalName": "Cloud Functions",
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/cloud-platform": {
"description": "View and manage your data across Google Cloud Platform services"
}
}
}
},
"rootUrl": "https://cloudfunctions.googleapis.com/",
"ownerDomain": "google.com",
"name": "cloudfunctions",
@ -10,66 +20,66 @@
"operations": {
"methods": {
"get": {
"path": "v1/{+name}",
"flatPath": "v1/operations/{operationsId}",
"id": "cloudfunctions.operations.get",
"path": "v1/{+name}",
"description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.",
"httpMethod": "GET",
"response": {
"$ref": "Operation"
},
"parameterOrder": [
"name"
],
"httpMethod": "GET",
"parameters": {
"name": {
"description": "The name of the operation resource.",
"type": "string",
"required": true,
"pattern": "^operations/[^/]+$",
"location": "path"
}
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"list": {
"description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id.",
"response": {
"$ref": "ListOperationsResponse"
},
"parameterOrder": [],
"httpMethod": "GET",
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"parameters": {
"name": {
"type": "string",
"required": true,
"pattern": "^operations/[^/]+$",
"location": "path",
"description": "The name of the operation resource."
}
},
"flatPath": "v1/operations/{operationsId}"
},
"list": {
"description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id.",
"httpMethod": "GET",
"parameterOrder": [],
"response": {
"$ref": "ListOperationsResponse"
},
"parameters": {
"filter": {
"location": "query",
"description": "The standard list filter.",
"type": "string"
},
"pageToken": {
"location": "query",
"description": "The standard list page token.",
"type": "string"
},
"name": {
"location": "query",
"description": "The name of the operation's parent resource.",
"type": "string"
},
"pageSize": {
"type": "integer",
"location": "query",
"format": "int32",
"description": "The standard list page size."
},
"filter": {
"description": "The standard list filter.",
"type": "string",
"location": "query"
},
"pageSize": {
"location": "query",
"format": "int32",
"description": "The standard list page size.",
"type": "integer"
}
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"flatPath": "v1/operations",
"path": "v1/operations",
"id": "cloudfunctions.operations.list"
"id": "cloudfunctions.operations.list",
"path": "v1/operations"
}
}
},
@ -78,45 +88,45 @@
"locations": {
"methods": {
"list": {
"path": "v1/{+name}/locations",
"id": "cloudfunctions.projects.locations.list",
"description": "Lists information about the supported locations for this service.",
"httpMethod": "GET",
"response": {
"$ref": "ListLocationsResponse"
},
"parameterOrder": [
"name"
],
"response": {
"$ref": "ListLocationsResponse"
},
"parameters": {
"filter": {
"description": "The standard list filter.",
"type": "string",
"location": "query"
},
"pageToken": {
"location": "query",
"description": "The standard list page token.",
"type": "string"
},
"name": {
"pattern": "^projects/[^/]+$",
"location": "path",
"description": "The resource that owns the locations collection, if applicable.",
"type": "string",
"required": true,
"pattern": "^projects/[^/]+$",
"location": "path"
"required": true
},
"pageSize": {
"type": "integer",
"location": "query",
"format": "int32",
"description": "The standard list page size.",
"type": "integer"
},
"filter": {
"location": "query",
"description": "The standard list filter.",
"type": "string"
"description": "The standard list page size."
}
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"flatPath": "v1/projects/{projectsId}/locations"
"flatPath": "v1/projects/{projectsId}/locations",
"path": "v1/{+name}/locations",
"id": "cloudfunctions.projects.locations.list",
"description": "Lists information about the supported locations for this service."
}
}
}
@ -124,31 +134,30 @@
}
},
"parameters": {
"pp": {
"oauth_token": {
"type": "string",
"location": "query",
"description": "Pretty-print response.",
"default": "true",
"type": "boolean"
"description": "OAuth 2.0 token for the current user."
},
"bearer_token": {
"location": "query",
"description": "OAuth bearer token.",
"type": "string"
},
"oauth_token": {
"location": "query",
"description": "OAuth 2.0 token for the current user.",
"type": "string"
},
"upload_protocol": {
"location": "query",
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"type": "string"
},
"prettyPrint": {
"location": "query",
"description": "Returns response with indentations and line breaks.",
"default": "true",
"type": "boolean",
"type": "boolean"
},
"uploadType": {
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"type": "string",
"location": "query"
},
"fields": {
@ -156,12 +165,13 @@
"description": "Selector specifying which fields to include in a partial response.",
"type": "string"
},
"uploadType": {
"location": "query",
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"type": "string"
"callback": {
"description": "JSONP",
"type": "string",
"location": "query"
},
"$.xgafv": {
"type": "string",
"enumDescriptions": [
"v1 error format",
"v2 error format"
@ -171,15 +181,15 @@
"1",
"2"
],
"description": "V1 error format.",
"type": "string"
},
"callback": {
"location": "query",
"description": "JSONP",
"type": "string"
"description": "V1 error format."
},
"alt": {
"type": "string",
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query",
"description": "Data format for response.",
"default": "json",
@ -187,18 +197,12 @@
"json",
"media",
"proto"
],
"type": "string",
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
]
},
"access_token": {
"location": "query",
"description": "OAuth access token.",
"type": "string",
"location": "query"
"type": "string"
},
"key": {
"location": "query",
@ -209,61 +213,40 @@
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"type": "string",
"location": "query"
},
"pp": {
"description": "Pretty-print response.",
"default": "true",
"type": "boolean",
"location": "query"
}
},
"version": "v1",
"baseUrl": "https://cloudfunctions.googleapis.com/",
"servicePath": "",
"description": "API for managing lightweight user-provided functions executed in response to events.",
"kind": "discovery#restDescription",
"description": "API for managing lightweight user-provided functions executed in response to events.",
"servicePath": "",
"basePath": "",
"documentationLink": "https://cloud.google.com/functions",
"revision": "20170912",
"id": "cloudfunctions:v1",
"documentationLink": "https://cloud.google.com/functions",
"revision": "20170920",
"discoveryVersion": "v1",
"version_module": true,
"schemas": {
"Status": {
"description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client."
},
"details": {
"description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.",
"items": {
"additionalProperties": {
"type": "any",
"description": "Properties of the object. Contains field @type with type URL."
},
"type": "object"
},
"type": "array"
},
"code": {
"format": "int32",
"description": "The status code, which should be an enum value of google.rpc.Code.",
"type": "integer"
}
},
"id": "Status"
},
"ListLocationsResponse": {
"description": "The response message for Locations.ListLocations.",
"type": "object",
"properties": {
"nextPageToken": {
"description": "The standard List next-page token.",
"type": "string"
},
"locations": {
"description": "A list of locations that matches the specified filter in the request.",
"items": {
"$ref": "Location"
},
"type": "array"
},
"nextPageToken": {
"description": "The standard List next-page token.",
"type": "string"
}
},
"id": "ListLocationsResponse"
@ -272,65 +255,36 @@
"description": "A resource that represents Google Cloud Platform location.",
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Resource name for the location, which may vary between implementations.\nFor example: `\"projects/example-project/locations/us-east1\"`"
},
"locationId": {
"type": "string",
"description": "The canonical id for this location. For example: `\"us-east1\"`."
},
"metadata": {
"additionalProperties": {
"description": "Properties of the object. Contains field @type with type URL.",
"type": "any"
},
"description": "Service-specific metadata. For example the available capacity at the given\nlocation.",
"type": "object"
},
"labels": {
"additionalProperties": {
"type": "string"
},
"description": "Cross-service attributes for the location. For example\n\n {\"cloud.googleapis.com/region\": \"us-east1\"}",
"type": "object"
},
"name": {
"description": "Resource name for the location, which may vary between implementations.\nFor example: `\"projects/example-project/locations/us-east1\"`",
"type": "string"
},
"locationId": {
"description": "The canonical id for this location. For example: `\"us-east1\"`.",
"type": "string"
},
"metadata": {
"description": "Service-specific metadata. For example the available capacity at the given\nlocation.",
"type": "object",
"additionalProperties": {
"description": "Properties of the object. Contains field @type with type URL.",
"type": "any"
}
}
},
"id": "Location"
},
"ListOperationsResponse": {
"properties": {
"nextPageToken": {
"description": "The standard List next-page token.",
"type": "string"
},
"operations": {
"description": "A list of operations that matches the specified filter in the request.",
"items": {
"$ref": "Operation"
},
"type": "array"
}
},
"id": "ListOperationsResponse",
"description": "The response message for Operations.ListOperations.",
"type": "object"
},
"Operation": {
"description": "This resource represents a long-running operation that is the result of a\nnetwork API call.",
"type": "object",
"properties": {
"error": {
"description": "The error result of the operation in case of failure or cancellation.",
"$ref": "Status"
},
"metadata": {
"additionalProperties": {
"type": "any",
"description": "Properties of the object. Contains field @type with type URL."
},
"description": "Service-specific metadata associated with the operation. It typically\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.",
"type": "object"
},
"done": {
"description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.",
"type": "boolean"
@ -346,16 +300,49 @@
"name": {
"description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.",
"type": "string"
},
"error": {
"$ref": "Status",
"description": "The error result of the operation in case of failure or cancellation."
},
"metadata": {
"description": "Service-specific metadata associated with the operation. It typically\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.",
"type": "object",
"additionalProperties": {
"type": "any",
"description": "Properties of the object. Contains field @type with type URL."
}
}
},
"id": "Operation",
"description": "This resource represents a long-running operation that is the result of a\nnetwork API call."
"id": "Operation"
},
"ListOperationsResponse": {
"properties": {
"operations": {
"description": "A list of operations that matches the specified filter in the request.",
"items": {
"$ref": "Operation"
},
"type": "array"
},
"nextPageToken": {
"description": "The standard List next-page token.",
"type": "string"
}
},
"id": "ListOperationsResponse",
"description": "The response message for Operations.ListOperations.",
"type": "object"
},
"OperationMetadataV1Beta2": {
"description": "Metadata describing an Operation",
"type": "object",
"properties": {
"type": {
"enumDescriptions": [
"Unknown operation type.",
"Triggered by CreateFunction call",
"Triggered by UpdateFunction call",
"Triggered by DeleteFunction call."
],
"enum": [
"OPERATION_UNSPECIFIED",
"CREATE_FUNCTION",
@ -363,17 +350,16 @@
"DELETE_FUNCTION"
],
"description": "Type of operation.",
"type": "string",
"enumDescriptions": [
"Unknown operation type.",
"Triggered by CreateFunction call",
"Triggered by UpdateFunction call",
"Triggered by DeleteFunction call."
]
"type": "string"
},
"target": {
"type": "string",
"description": "Target of the operation - for example\nprojects/project-1/locations/region-1/functions/function-1"
"description": "Target of the operation - for example\nprojects/project-1/locations/region-1/functions/function-1",
"type": "string"
},
"versionId": {
"format": "int64",
"description": "Version id of the function created or updated by an API call.\nThis field is only pupulated for Create and Update operations.",
"type": "string"
},
"request": {
"description": "The original request that started the operation.",
@ -384,22 +370,41 @@
}
}
},
"id": "OperationMetadataV1Beta2"
"id": "OperationMetadataV1Beta2",
"description": "Metadata describing an Operation",
"type": "object"
},
"Status": {
"description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.",
"type": "object",
"properties": {
"code": {
"format": "int32",
"description": "The status code, which should be an enum value of google.rpc.Code.",
"type": "integer"
},
"message": {
"description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.",
"type": "string"
},
"details": {
"items": {
"type": "object",
"additionalProperties": {
"description": "Properties of the object. Contains field @type with type URL.",
"type": "any"
}
},
"type": "array",
"description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use."
}
},
"id": "Status"
}
},
"protocol": "rest",
"icons": {
"x32": "http://www.google.com/images/icons/product/search-32.gif",
"x16": "http://www.google.com/images/icons/product/search-16.gif"
},
"canonicalName": "Cloud Functions",
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/cloud-platform": {
"description": "View and manage your data across Google Cloud Platform services"
}
}
}
}
"protocol": "rest"
}

View File

@ -320,6 +320,11 @@ type OperationMetadataV1Beta2 struct {
// "DELETE_FUNCTION" - Triggered by DeleteFunction call.
Type string `json:"type,omitempty"`
// VersionId: Version id of the function created or updated by an API
// call.
// This field is only pupulated for Create and Update operations.
VersionId int64 `json:"versionId,omitempty,string"`
// ForceSendFields is a list of field names (e.g. "Request") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,

File diff suppressed because it is too large Load Diff

View File

@ -221,6 +221,9 @@ type CloudFunction struct {
// via URL.
HttpsTrigger *HTTPSTrigger `json:"httpsTrigger,omitempty"`
// Labels: Labels associated with this Cloud Function.
Labels map[string]string `json:"labels,omitempty"`
// LatestOperation: Output only. Name of the most recent operation
// modifying the function. If
// the function status is `DEPLOYING` or `DELETING`, then it points to
@ -291,6 +294,12 @@ type CloudFunction struct {
// Function.
UpdateTime string `json:"updateTime,omitempty"`
// VersionId: Output only.
// The version identifier of the Cloud Function. Each deployment
// attempt
// results in a new version of a function being created.
VersionId int64 `json:"versionId,omitempty,string"`
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
@ -353,6 +362,15 @@ type EventTrigger struct {
// project (`projects/*`)
Resource string `json:"resource,omitempty"`
// Service: The hostname of the service that should be observed.
//
// If no string is provided, the default service implementing the API
// will
// be used. For example, `storage.googleapis.com` is the default for
// all
// event types in the 'google.storage` namespace.
Service string `json:"service,omitempty"`
// ForceSendFields is a list of field names (e.g. "EventType") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
@ -689,6 +707,11 @@ type OperationMetadataV1Beta2 struct {
// "DELETE_FUNCTION" - Triggered by DeleteFunction call.
Type string `json:"type,omitempty"`
// VersionId: Version id of the function created or updated by an API
// call.
// This field is only pupulated for Create and Update operations.
VersionId int64 `json:"versionId,omitempty,string"`
// ForceSendFields is a list of field names (e.g. "Request") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,

File diff suppressed because it is too large Load Diff

View File

@ -21,7 +21,7 @@
"basePath": "/cloudmonitoring/v2beta2/projects/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "cloudmonitoring/v2beta2/projects/",
"batchPath": "batch/cloudmonitoring/v2beta2",
"batchPath": "batch",
"parameters": {
"alt": {
"type": "string",

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -395,35 +395,10 @@ func (s *AppEngineHttpTarget) MarshalJSON() ([]byte, error) {
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// AppEngineQueueConfig: App Engine queue config.
//
// An App Engine queue is a queue that has AppEngineQueueConfig
// set.
//
// The task will be delivered to the App Engine application
// URL
// specified by its AppEngineQueueConfig and AppEngineTaskTarget.
// The documentation for AppEngineTaskTarget explains how the
// task's host URL is constructed.
//
// Using this type of queue configuration
// requires
// [`appengine.applications.get`](/appengine/docs/admin-api/acce
// ss-control)
// Google IAM permission for the project
// and the following
// scope:
//
// `https://www.googleapis.com/auth/cloud-platform`
// AppEngineQueueConfig: Deprecated. Use AppEngineTarget.
type AppEngineQueueConfig struct {
// AppEngineRoutingOverride: Overrides for the
// task-level app_engine_routing.
//
// If set, AppEngineQueueConfig.app_engine_routing_override is used
// for
// all tasks in the queue, no matter what the setting is for
// the
// task-level app_engine_routing.
// AppEngineRoutingOverride: Deprecated. Use
// AppEngineTarget.app_engine_routing_override.
AppEngineRoutingOverride *AppEngineRouting `json:"appEngineRoutingOverride,omitempty"`
// ForceSendFields is a list of field names (e.g.
@ -621,140 +596,16 @@ func (s *AppEngineRouting) MarshalJSON() ([]byte, error) {
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// AppEngineTaskTarget: App Engine task target.
//
// An App Engine task is a task that has AppEngineTaskTarget set.
//
// This proto can only be used for tasks in a queue which
// has
// Queue.app_engine_queue_config set.
//
// Using this type of task target
// requires
// [`appengine.applications.get`](/appengine/docs/admin-api/acce
// ss-control)
// Google IAM permission for the project
// and the following
// scope:
//
// `https://www.googleapis.com/auth/cloud-platform`
//
// The task will be delivered to the URL specified by
// the
// AppEngineQueueConfig and AppEngineTaskTarget in the App Engine
// app
// which belongs to the same project as the queue. For more information,
// see
// [How Requests are
// Routed](/appengine/docs/standard/python/how-requests-are-routed)
// and how routing is affected by
// [dispatch files](/appengine/docs/python/config/dispatchref).
//
// The AppEngineRouting used to construct the URL can be set at
// the queue-level or task-level:
//
// * If set, AppEngineQueueConfig.app_engine_routing_override is used
// for
// all tasks in the queue, no matter what the setting is for the
// task-level app_engine_routing.
//
//
// The `url` that the task will be sent to is:
//
// * `url =` AppEngineRouting.host `+`
// AppEngineTaskTarget.relative_url
//
// The task will be sent to a task handler by an HTTP
// request using the specified AppEngineTaskTarget.http_method (for
// example
// POST, HTTP GET, etc). The task attempt has succeeded if the task
// handler
// returns an HTTP response code in the range [200 - 299]. Error 503
// is
// considered an App Engine system error instead of an application
// error.
// Requests returning error 503 will be retried regardless of
// retry
// configuration and not counted against retry counts.
// Any other response code or a failure to receive a response before
// the
// deadline is a failed attempt.
// AppEngineTaskTarget: Deprecated. Use AppEngineHttpRequest.
type AppEngineTaskTarget struct {
// AppEngineRouting: Task-level setting for App Engine routing.
//
// If set, AppEngineQueueConfig.app_engine_routing_override is used
// for
// all tasks in the queue, no matter what the setting is for
// the
// task-level app_engine_routing.
// AppEngineRouting: Deprecated. Use
// AppEngineHttpRequest.app_engine_routing.
AppEngineRouting *AppEngineRouting `json:"appEngineRouting,omitempty"`
// Headers: HTTP request headers.
//
// This map contains the header field names and values.
// Headers can be set when the
// [task is
// created](google.cloud.tasks.v2beta2.CloudTasks.CreateTask).
// Repeated headers are not supported but a header value can contain
// commas.
//
// Cloud Tasks sets some headers to default values:
//
// * `User-Agent`: By default, this header is
// "AppEngine-Google; (+http://code.google.com/appengine)".
// This header can be modified, but Cloud Tasks will append
// "AppEngine-Google; (+http://code.google.com/appengine)" to the
// modified `User-Agent`.
//
// If the task has an AppEngineTaskTarget.payload, Cloud Tasks sets
// the
// following headers:
//
// * `Content-Type`: By default, the `Content-Type` header is set to
// "application/octet-stream". The default can be overridden by
// explictly
// setting `Content-Type` to a particular media type when the
// [task is
// created](google.cloud.tasks.v2beta2.CloudTasks.CreateTask).
// For example, `Content-Type` can be set to "application/json".
// * `Content-Length`: This is computed by Cloud Tasks. This value is
// output only. It cannot be changed.
//
// The headers below cannot be set or overridden:
//
// * `Host`
// * `X-Google-*`
// * `X-AppEngine-*`
//
// In addition, some App Engine headers, which contain
// task-specific information, are also be sent to the task handler;
// see
// [request
// headers](/appengine/docs/python/taskqueue/push/creating-handlers#readi
// ng_request_headers).
// Headers: Deprecated. Use AppEngineHttpRequest.headers.
Headers map[string]string `json:"headers,omitempty"`
// HttpMethod: The HTTP method to use for the request. The default is
// POST.
//
// The app's request handler for the task's target URL must be able to
// handle
// HTTP requests with this http_method, otherwise the task attempt will
// fail
// with error code 405 "Method Not Allowed" because "the method
// specified in
// the Request-Line is not allowed for the resource identified by
// the
// Request-URI". See
// [Writing a push task request
// handler](/appengine/docs/java/taskqueue/push/creating-handlers#writing
// _a_push_task_request_handler)
// and the documentation for the request handlers in the language your
// app is
// written in e.g.
// [python
// RequestHandler](/appengine/docs/python/tools/webapp/requesthandlerclas
// s).
// HttpMethod: Deprecated. Use AppEngineHttpRequest.http_method.
//
// Possible values:
// "HTTP_METHOD_UNSPECIFIED" - HTTP method unspecified
@ -765,22 +616,10 @@ type AppEngineTaskTarget struct {
// "DELETE" - HTTP Delete
HttpMethod string `json:"httpMethod,omitempty"`
// Payload: Payload.
//
// The payload will be sent as the HTTP message body. A message
// body, and thus a payload, is allowed only if the HTTP method is
// POST or PUT. It is an error to set a data payload on a task with
// an incompatible HttpMethod.
// Payload: Deprecated. Use AppEngineHttpRequest.payload.
Payload string `json:"payload,omitempty"`
// RelativeUrl: The relative URL.
//
// The relative URL must begin with "/" and must be a valid HTTP
// relative URL.
// It can contain a path, query string arguments, and `#` fragments.
// If the relative URL is empty, then the root path "/" will be used.
// No spaces are allowed, and the maximum length allowed is 2083
// characters.
// RelativeUrl: Deprecated. Use AppEngineHttpRequest.relative_url.
RelativeUrl string `json:"relativeUrl,omitempty"`
// ForceSendFields is a list of field names (e.g. "AppEngineRouting") to
@ -1120,6 +959,43 @@ type Empty struct {
type GetIamPolicyRequest struct {
}
// ListLocationsResponse: The response message for
// Locations.ListLocations.
type ListLocationsResponse struct {
// Locations: A list of locations that matches the specified filter in
// the request.
Locations []*Location `json:"locations,omitempty"`
// NextPageToken: The standard List next-page token.
NextPageToken string `json:"nextPageToken,omitempty"`
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "Locations") 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. "Locations") 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 *ListLocationsResponse) MarshalJSON() ([]byte, error) {
type noMethod ListLocationsResponse
raw := noMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// ListQueuesResponse: Response message for CloudTasks.ListQueues.
type ListQueuesResponse struct {
// NextPageToken: A token to retrieve next page of results.
@ -1207,6 +1083,54 @@ func (s *ListTasksResponse) MarshalJSON() ([]byte, error) {
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// Location: A resource that represents Google Cloud Platform location.
type Location struct {
// Labels: Cross-service attributes for the location. For example
//
// {"cloud.googleapis.com/region": "us-east1"}
Labels map[string]string `json:"labels,omitempty"`
// LocationId: The canonical id for this location. For example:
// "us-east1".
LocationId string `json:"locationId,omitempty"`
// Metadata: Service-specific metadata. For example the available
// capacity at the given
// location.
Metadata googleapi.RawMessage `json:"metadata,omitempty"`
// Name: Resource name for the location, which may vary between
// implementations.
// For example: "projects/example-project/locations/us-east1"
Name string `json:"name,omitempty"`
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
// 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 *Location) MarshalJSON() ([]byte, error) {
type noMethod Location
raw := noMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// PauseQueueRequest: Request message for CloudTasks.PauseQueue.
type PauseQueueRequest struct {
}
@ -1346,9 +1270,7 @@ func (s *PullMessage) MarshalJSON() ([]byte, error) {
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// PullQueueConfig: Pull queue config.
//
// A pull queue is a queue that has PullQueueConfig set.
// PullQueueConfig: Deprecated. Use PullTarget.
type PullQueueConfig struct {
}
@ -1356,25 +1278,12 @@ type PullQueueConfig struct {
type PullTarget struct {
}
// PullTaskTarget: Pull task target.
//
// A pull task is a task that has PullTaskTarget set.
//
// This proto can only be used for tasks in a queue which
// has
// Queue.pull_queue_config set.
// PullTaskTarget: Deprecated. Use PullMessage.
type PullTaskTarget struct {
// Payload: A data payload consumed by the task worker to execute the
// task.
// Payload: Deprecated. Use PullMessage.payload.
Payload string `json:"payload,omitempty"`
// Tag: A meta-data tag for this task.
//
// This value is used by CloudTasks.PullTasks calls
// when
// PullTasksRequest.filter is `tag=<tag>`.
//
// The tag must be less than 500 bytes.
// Tag: Deprecated. Use PullMessage.tag.
Tag string `json:"tag,omitempty"`
// ForceSendFields is a list of field names (e.g. "Payload") to
@ -1408,7 +1317,7 @@ type PullTasksRequest struct {
//
// When `filter` is set to `tag=<my-tag>` then the
// PullTasksResponse will contain only tasks whose
// PullTaskTarget.tag is equal to `<my-tag>`. `<my-tag>` can be
// PullMessage.tag is equal to `<my-tag>`. `<my-tag>` can be
// a bytes encoded as a string and must be less than 500 bytes.
// If `<my-tag>` includes whitespace or special characters (characters
// which
@ -1578,8 +1487,7 @@ type Queue struct {
// An App Engine queue is a queue that has an AppEngineHttpTarget.
AppEngineHttpTarget *AppEngineHttpTarget `json:"appEngineHttpTarget,omitempty"`
// AppEngineQueueConfig:
// App Engine queue config.
// AppEngineQueueConfig: Deprecated. Use Queue.app_engine_http_target.
AppEngineQueueConfig *AppEngineQueueConfig `json:"appEngineQueueConfig,omitempty"`
// Name: The queue name.
@ -1601,8 +1509,7 @@ type Queue struct {
// it becomes output only.
Name string `json:"name,omitempty"`
// PullQueueConfig:
// Pull queue config.
// PullQueueConfig: Deprecated. Use Queue.pull_target.
PullQueueConfig *PullQueueConfig `json:"pullQueueConfig,omitempty"`
// PullTarget: Pull target.
@ -1644,13 +1551,15 @@ type Queue struct {
// still be added to it by the user. When a pull queue is paused,
// all CloudTasks.PullTasks calls will return a
// `FAILED_PRECONDITION` error.
// "DISABLED" - Disabled indicates that queue has been removed from
// queue.yaml.
// "DISABLED" - The queue is disabled.
//
// When you remove a queue
// from
// [queue.yaml](/appengine/docs/python/config/queueref),
// it is marked as `DISABLED`. You cannot directly disable a
// A queue becomes `DISABLED`
// when
// [queue.yaml](/appengine/docs/python/config/queueref)
// or
// [queue.xml](appengine/docs/standard/java/config/queueref) is
// uploaded
// which does not contain the queue. You cannot directly disable a
// queue.
//
// When a queue is disabled, tasks can still be added to a queue
@ -2122,10 +2031,7 @@ type Task struct {
// An App Engine task is a task that has AppEngineHttpRequest set.
AppEngineHttpRequest *AppEngineHttpRequest `json:"appEngineHttpRequest,omitempty"`
// AppEngineTaskTarget:
// App Engine task target. Can be set only
// if
// Queue.app_engine_queue_config is set.
// AppEngineTaskTarget: Deprecated. Use Task.app_engine_http_request.
AppEngineTaskTarget *AppEngineTaskTarget `json:"appEngineTaskTarget,omitempty"`
// CreateTime: Output only.
@ -2166,8 +2072,7 @@ type Task struct {
// A pull task is a task that has PullMessage set.
PullMessage *PullMessage `json:"pullMessage,omitempty"`
// PullTaskTarget:
// Pull task target. Can be set only if Queue.pull_queue_config is set.
// PullTaskTarget: Deprecated. Use Task.pull_message.
PullTaskTarget *PullTaskTarget `json:"pullTaskTarget,omitempty"`
// ScheduleTime: The time when the task is scheduled to be
@ -2405,7 +2310,7 @@ type ThrottleConfig struct {
// [bucket_size in
// queue.yaml](/appengine/docs/standard/python/config/queueref#bucket_siz
// e).
MaxBurstSize float64 `json:"maxBurstSize,omitempty"`
MaxBurstSize int64 `json:"maxBurstSize,omitempty"`
// MaxOutstandingTasks: The maximum number of outstanding tasks that
// Cloud Tasks allows
@ -2467,7 +2372,6 @@ func (s *ThrottleConfig) MarshalJSON() ([]byte, error) {
func (s *ThrottleConfig) UnmarshalJSON(data []byte) error {
type noMethod ThrottleConfig
var s1 struct {
MaxBurstSize gensupport.JSONFloat64 `json:"maxBurstSize"`
MaxTasksDispatchedPerSecond gensupport.JSONFloat64 `json:"maxTasksDispatchedPerSecond"`
*noMethod
}
@ -2475,11 +2379,347 @@ func (s *ThrottleConfig) UnmarshalJSON(data []byte) error {
if err := json.Unmarshal(data, &s1); err != nil {
return err
}
s.MaxBurstSize = float64(s1.MaxBurstSize)
s.MaxTasksDispatchedPerSecond = float64(s1.MaxTasksDispatchedPerSecond)
return nil
}
// method id "cloudtasks.projects.locations.get":
type ProjectsLocationsGetCall struct {
s *Service
name string
urlParams_ gensupport.URLParams
ifNoneMatch_ string
ctx_ context.Context
header_ http.Header
}
// Get: Get information about a location.
func (r *ProjectsLocationsService) Get(name string) *ProjectsLocationsGetCall {
c := &ProjectsLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.name = name
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 *ProjectsLocationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsGetCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// IfNoneMatch sets the optional parameter which makes the operation
// fail if the object's ETag matches the given value. This is useful for
// getting updates only after the object has changed since the last
// request. Use googleapi.IsNotModified to check whether the response
// error from Do is the result of In-None-Match.
func (c *ProjectsLocationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsGetCall {
c.ifNoneMatch_ = entityTag
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 *ProjectsLocationsGetCall) Context(ctx context.Context) *ProjectsLocationsGetCall {
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 *ProjectsLocationsGetCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *ProjectsLocationsGetCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := make(http.Header)
for k, v := range c.header_ {
reqHeaders[k] = v
}
reqHeaders.Set("User-Agent", c.s.userAgent())
if c.ifNoneMatch_ != "" {
reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
}
var body io.Reader = nil
c.urlParams_.Set("alt", alt)
urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta2/{+name}")
urls += "?" + c.urlParams_.Encode()
req, _ := http.NewRequest("GET", urls, body)
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"name": c.name,
})
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "cloudtasks.projects.locations.get" call.
// Exactly one of *Location or error will be non-nil. Any non-2xx status
// code is an error. Response headers are in either
// *Location.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 *ProjectsLocationsGetCall) Do(opts ...googleapi.CallOption) (*Location, 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 := &Location{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
if err := json.NewDecoder(res.Body).Decode(target); err != nil {
return nil, err
}
return ret, nil
// {
// "description": "Get information about a location.",
// "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}",
// "httpMethod": "GET",
// "id": "cloudtasks.projects.locations.get",
// "parameterOrder": [
// "name"
// ],
// "parameters": {
// "name": {
// "description": "Resource name for the location.",
// "location": "path",
// "pattern": "^projects/[^/]+/locations/[^/]+$",
// "required": true,
// "type": "string"
// }
// },
// "path": "v2beta2/{+name}",
// "response": {
// "$ref": "Location"
// },
// "scopes": [
// "https://www.googleapis.com/auth/cloud-platform"
// ]
// }
}
// method id "cloudtasks.projects.locations.list":
type ProjectsLocationsListCall struct {
s *Service
name string
urlParams_ gensupport.URLParams
ifNoneMatch_ string
ctx_ context.Context
header_ http.Header
}
// List: Lists information about the supported locations for this
// service.
func (r *ProjectsLocationsService) List(name string) *ProjectsLocationsListCall {
c := &ProjectsLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.name = name
return c
}
// Filter sets the optional parameter "filter": The standard list
// filter.
func (c *ProjectsLocationsListCall) Filter(filter string) *ProjectsLocationsListCall {
c.urlParams_.Set("filter", filter)
return c
}
// PageSize sets the optional parameter "pageSize": The standard list
// page size.
func (c *ProjectsLocationsListCall) PageSize(pageSize int64) *ProjectsLocationsListCall {
c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
return c
}
// PageToken sets the optional parameter "pageToken": The standard list
// page token.
func (c *ProjectsLocationsListCall) PageToken(pageToken string) *ProjectsLocationsListCall {
c.urlParams_.Set("pageToken", pageToken)
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 *ProjectsLocationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsListCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// IfNoneMatch sets the optional parameter which makes the operation
// fail if the object's ETag matches the given value. This is useful for
// getting updates only after the object has changed since the last
// request. Use googleapi.IsNotModified to check whether the response
// error from Do is the result of In-None-Match.
func (c *ProjectsLocationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsListCall {
c.ifNoneMatch_ = entityTag
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 *ProjectsLocationsListCall) Context(ctx context.Context) *ProjectsLocationsListCall {
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 *ProjectsLocationsListCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *ProjectsLocationsListCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := make(http.Header)
for k, v := range c.header_ {
reqHeaders[k] = v
}
reqHeaders.Set("User-Agent", c.s.userAgent())
if c.ifNoneMatch_ != "" {
reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
}
var body io.Reader = nil
c.urlParams_.Set("alt", alt)
urls := googleapi.ResolveRelative(c.s.BasePath, "v2beta2/{+name}/locations")
urls += "?" + c.urlParams_.Encode()
req, _ := http.NewRequest("GET", urls, body)
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"name": c.name,
})
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "cloudtasks.projects.locations.list" call.
// Exactly one of *ListLocationsResponse or error will be non-nil. Any
// non-2xx status code is an error. Response headers are in either
// *ListLocationsResponse.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 *ProjectsLocationsListCall) Do(opts ...googleapi.CallOption) (*ListLocationsResponse, 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 := &ListLocationsResponse{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
if err := json.NewDecoder(res.Body).Decode(target); err != nil {
return nil, err
}
return ret, nil
// {
// "description": "Lists information about the supported locations for this service.",
// "flatPath": "v2beta2/projects/{projectsId}/locations",
// "httpMethod": "GET",
// "id": "cloudtasks.projects.locations.list",
// "parameterOrder": [
// "name"
// ],
// "parameters": {
// "filter": {
// "description": "The standard list filter.",
// "location": "query",
// "type": "string"
// },
// "name": {
// "description": "The resource that owns the locations collection, if applicable.",
// "location": "path",
// "pattern": "^projects/[^/]+$",
// "required": true,
// "type": "string"
// },
// "pageSize": {
// "description": "The standard list page size.",
// "format": "int32",
// "location": "query",
// "type": "integer"
// },
// "pageToken": {
// "description": "The standard list page token.",
// "location": "query",
// "type": "string"
// }
// },
// "path": "v2beta2/{+name}/locations",
// "response": {
// "$ref": "ListLocationsResponse"
// },
// "scopes": [
// "https://www.googleapis.com/auth/cloud-platform"
// ]
// }
}
// Pages invokes f for each page of results.
// A non-nil error returned from f will halt the iteration.
// The provided context supersedes any context provided to the Context method.
func (c *ProjectsLocationsListCall) Pages(ctx context.Context, f func(*ListLocationsResponse) error) error {
c.ctx_ = ctx
defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
for {
x, err := c.Do()
if err != nil {
return err
}
if err := f(x); err != nil {
return err
}
if x.NextPageToken == "" {
return nil
}
c.PageToken(x.NextPageToken)
}
}
// method id "cloudtasks.projects.locations.queues.create":
type ProjectsLocationsQueuesCreateCall struct {
@ -3072,7 +3312,7 @@ func (r *ProjectsLocationsQueuesService) List(parent string) *ProjectsLocationsQ
// [Stackdriver's Advanced Logs
// Filters](/logging/docs/view/advanced_filters).
//
// Sample filter "app_engine_queue_config: *".
// Sample filter "app_engine_http_target: *".
//
// Note that using filters might cause fewer queues than
// the
@ -3214,7 +3454,7 @@ func (c *ProjectsLocationsQueuesListCall) Do(opts ...googleapi.CallOption) (*Lis
// ],
// "parameters": {
// "filter": {
// "description": "`filter` can be used to specify a subset of queues. Any Queue\nfield can be used as a filter and several operators as supported.\nFor example: `\u003c=, \u003c, \u003e=, \u003e, !=, =, :`. The filter syntax is the same as\ndescribed in\n[Stackdriver's Advanced Logs Filters](/logging/docs/view/advanced_filters).\n\nSample filter \"app_engine_queue_config: *\".\n\nNote that using filters might cause fewer queues than the\nrequested_page size to be returned.",
// "description": "`filter` can be used to specify a subset of queues. Any Queue\nfield can be used as a filter and several operators as supported.\nFor example: `\u003c=, \u003c, \u003e=, \u003e, !=, =, :`. The filter syntax is the same as\ndescribed in\n[Stackdriver's Advanced Logs Filters](/logging/docs/view/advanced_filters).\n\nSample filter \"app_engine_http_target: *\".\n\nNote that using filters might cause fewer queues than the\nrequested_page size to be returned.",
// "location": "query",
// "type": "string"
// },
@ -4932,7 +5172,7 @@ func (r *ProjectsLocationsQueuesTasksService) List(parent string) *ProjectsLocat
// OrderBy sets the optional parameter "orderBy": Sort order used for
// the query. The fields supported for sorting
// are Task.schedule_time and PullTaskTarget.tag. All results will
// are Task.schedule_time and PullMessage.tag. All results will
// be
// returned in ascending order. The default ordering is
// by
@ -5101,7 +5341,7 @@ func (c *ProjectsLocationsQueuesTasksListCall) Do(opts ...googleapi.CallOption)
// ],
// "parameters": {
// "orderBy": {
// "description": "\nSort order used for the query. The fields supported for sorting\nare Task.schedule_time and PullTaskTarget.tag. All results will be\nreturned in ascending order. The default ordering is by\nTask.schedule_time.",
// "description": "\nSort order used for the query. The fields supported for sorting\nare Task.schedule_time and PullMessage.tag. All results will be\nreturned in ascending order. The default ordering is by\nTask.schedule_time.",
// "location": "query",
// "type": "string"
// },

View File

@ -1,29 +1,9 @@
{
"name": "cloudtrace",
"batchPath": "batch",
"title": "Stackdriver Trace API",
"ownerName": "Google",
"resources": {
"projects": {
"methods": {
"patchTraces": {
"path": "v1/projects/{projectId}/traces",
"id": "cloudtrace.projects.patchTraces",
"request": {
"$ref": "Traces"
},
"description": "Sends new traces to Stackdriver Trace or updates existing traces. If the ID\nof a trace that you send matches that of an existing trace, any fields\nin the existing trace and its spans are overwritten by the provided values,\nand any new fields provided are merged with the existing trace data. If the\nID does not match, a new trace is created.",
"httpMethod": "PATCH",
"parameterOrder": [
"projectId"
],
"response": {
"$ref": "Empty"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/trace.append"
],
"parameters": {
"projectId": {
"description": "ID of the Cloud project where the trace data is stored.",
@ -32,21 +12,39 @@
"location": "path"
}
},
"flatPath": "v1/projects/{projectId}/traces"
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/trace.append"
],
"flatPath": "v1/projects/{projectId}/traces",
"id": "cloudtrace.projects.patchTraces",
"path": "v1/projects/{projectId}/traces",
"description": "Sends new traces to Stackdriver Trace or updates existing traces. If the ID\nof a trace that you send matches that of an existing trace, any fields\nin the existing trace and its spans are overwritten by the provided values,\nand any new fields provided are merged with the existing trace data. If the\nID does not match, a new trace is created.",
"request": {
"$ref": "Traces"
},
"response": {
"$ref": "Empty"
},
"parameterOrder": [
"projectId"
],
"httpMethod": "PATCH"
}
},
"resources": {
"traces": {
"methods": {
"get": {
"response": {
"$ref": "Trace"
},
"description": "Gets a single trace by its ID.",
"httpMethod": "GET",
"parameterOrder": [
"projectId",
"traceId"
],
"httpMethod": "GET",
"response": {
"$ref": "Trace"
},
"parameters": {
"projectId": {
"location": "path",
@ -66,23 +64,52 @@
"https://www.googleapis.com/auth/trace.readonly"
],
"flatPath": "v1/projects/{projectId}/traces/{traceId}",
"id": "cloudtrace.projects.traces.get",
"path": "v1/projects/{projectId}/traces/{traceId}",
"description": "Gets a single trace by its ID."
"id": "cloudtrace.projects.traces.get"
},
"list": {
"response": {
"$ref": "ListTracesResponse"
},
"httpMethod": "GET",
"parameterOrder": [
"projectId"
],
"httpMethod": "GET",
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/trace.readonly"
],
"response": {
"$ref": "ListTracesResponse"
},
"parameters": {
"endTime": {
"type": "string",
"location": "query",
"format": "google-datetime",
"description": "End of the time interval (inclusive) during which the trace data was\ncollected from the application."
},
"pageToken": {
"type": "string",
"location": "query",
"description": "Token identifying the page of results to return. If provided, use the\nvalue of the `next_page_token` field from a previous request. Optional."
},
"startTime": {
"format": "google-datetime",
"description": "Start of the time interval (inclusive) during which the trace data was\ncollected from the application.",
"type": "string",
"location": "query"
},
"pageSize": {
"location": "query",
"format": "int32",
"description": "Maximum number of traces to return. If not specified or \u003c= 0, the\nimplementation selects a reasonable value. The implementation may\nreturn fewer traces than the requested page size. Optional.",
"type": "integer"
},
"view": {
"description": "Type of data returned for traces in the list. Optional. Default is\n`MINIMAL`.",
"type": "string",
"location": "query",
"enum": [
"VIEW_TYPE_UNSPECIFIED",
"MINIMAL",
"ROOTSPAN",
"COMPLETE"
]
},
"orderBy": {
"location": "query",
"description": "Field used to sort the returned traces. Optional.\nCan be one of the following:\n\n* `trace_id`\n* `name` (`name` field of root span in the trace)\n* `duration` (difference between `end_time` and `start_time` fields of\n the root span)\n* `start` (`start_time` field of the root span)\n\nDescending order can be specified by appending `desc` to the sort field\n(for example, `name desc`).\n\nOnly one sort field is permitted.",
@ -98,45 +125,15 @@
"location": "query",
"description": "An optional filter against labels for the request.\n\nBy default, searches use prefix matching. To specify exact match, prepend\na plus symbol (`+`) to the search term.\nMultiple terms are ANDed. Syntax:\n\n* `root:NAME_PREFIX` or `NAME_PREFIX`: Return traces where any root\n span starts with `NAME_PREFIX`.\n* `+root:NAME` or `+NAME`: Return traces where any root span's name is\n exactly `NAME`.\n* `span:NAME_PREFIX`: Return traces where any span starts with\n `NAME_PREFIX`.\n* `+span:NAME`: Return traces where any span's name is exactly\n `NAME`.\n* `latency:DURATION`: Return traces whose overall latency is\n greater or equal to than `DURATION`. Accepted units are nanoseconds\n (`ns`), milliseconds (`ms`), and seconds (`s`). Default is `ms`. For\n example, `latency:24ms` returns traces whose overall latency\n is greater than or equal to 24 milliseconds.\n* `label:LABEL_KEY`: Return all traces containing the specified\n label key (exact match, case-sensitive) regardless of the key:value\n pair's value (including empty values).\n* `LABEL_KEY:VALUE_PREFIX`: Return all traces containing the specified\n label key (exact match, case-sensitive) whose value starts with\n `VALUE_PREFIX`. Both a key and a value must be specified.\n* `+LABEL_KEY:VALUE`: Return all traces containing a key:value pair\n exactly matching the specified text. Both a key and a value must be\n specified.\n* `method:VALUE`: Equivalent to `/http/method:VALUE`.\n* `url:VALUE`: Equivalent to `/http/url:VALUE`.",
"type": "string"
},
"endTime": {
"location": "query",
"format": "google-datetime",
"description": "End of the time interval (inclusive) during which the trace data was\ncollected from the application.",
"type": "string"
},
"pageToken": {
"location": "query",
"description": "Token identifying the page of results to return. If provided, use the\nvalue of the `next_page_token` field from a previous request. Optional.",
"type": "string"
},
"startTime": {
"location": "query",
"format": "google-datetime",
"description": "Start of the time interval (inclusive) during which the trace data was\ncollected from the application.",
"type": "string"
},
"pageSize": {
"format": "int32",
"description": "Maximum number of traces to return. If not specified or \u003c= 0, the\nimplementation selects a reasonable value. The implementation may\nreturn fewer traces than the requested page size. Optional.",
"type": "integer",
"location": "query"
},
"view": {
"location": "query",
"enum": [
"VIEW_TYPE_UNSPECIFIED",
"MINIMAL",
"ROOTSPAN",
"COMPLETE"
],
"description": "Type of data returned for traces in the list. Optional. Default is\n`MINIMAL`.",
"type": "string"
}
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/trace.readonly"
],
"flatPath": "v1/projects/{projectId}/traces",
"id": "cloudtrace.projects.traces.list",
"path": "v1/projects/{projectId}/traces",
"id": "cloudtrace.projects.traces.list",
"description": "Returns of a list of traces that match the specified filter conditions."
}
}
@ -161,48 +158,50 @@
"type": "string"
},
"pp": {
"description": "Pretty-print response.",
"default": "true",
"type": "boolean",
"location": "query",
"description": "Pretty-print response."
},
"bearer_token": {
"description": "OAuth bearer token.",
"type": "string",
"location": "query"
},
"oauth_token": {
"type": "string",
"location": "query",
"description": "OAuth 2.0 token for the current user."
},
"upload_protocol": {
"type": "string",
"location": "query",
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\")."
},
"prettyPrint": {
"description": "Returns response with indentations and line breaks.",
"default": "true",
"type": "boolean",
"location": "query"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"type": "string",
"location": "query"
},
"bearer_token": {
"location": "query",
"description": "OAuth bearer token.",
"type": "string"
},
"upload_protocol": {
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"type": "string",
"location": "query"
},
"prettyPrint": {
"location": "query",
"description": "Returns response with indentations and line breaks.",
"default": "true",
"type": "boolean"
},
"uploadType": {
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"type": "string",
"location": "query"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"type": "string",
"location": "query"
},
"callback": {
"location": "query",
"description": "JSONP",
"type": "string"
},
"$.xgafv": {
"description": "V1 error format.",
"type": "string",
"enumDescriptions": [
"v1 error format",
"v2 error format"
@ -211,25 +210,23 @@
"enum": [
"1",
"2"
],
"description": "V1 error format.",
"type": "string"
]
},
"alt": {
"description": "Data format for response.",
"default": "json",
"enum": [
"json",
"media",
"proto"
],
"type": "string",
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query"
"location": "query",
"description": "Data format for response.",
"default": "json",
"enum": [
"json",
"media",
"proto"
]
}
},
"version": "v1",
@ -238,17 +235,20 @@
"description": "Send and retrieve trace data from Stackdriver Trace. Data is generated and available by default for all App Engine applications. Data from other applications can be written to Stackdriver Trace for display, reporting, and analysis.\n",
"kind": "discovery#restDescription",
"basePath": "",
"id": "cloudtrace:v1",
"revision": "20170905",
"revision": "20170913",
"documentationLink": "https://cloud.google.com/trace",
"id": "cloudtrace:v1",
"discoveryVersion": "v1",
"version_module": true,
"schemas": {
"TraceSpan": {
"id": "TraceSpan",
"description": "A span represents a single timed event within a trace. Spans can be nested\nand form a trace tree. Often, a trace contains a root span that describes the\nend-to-end latency of an operation and, optionally, one or more subspans for\nits suboperations. Spans do not need to be contiguous. There may be gaps\nbetween spans in a trace.",
"type": "object",
"properties": {
"name": {
"description": "Name of the span. Must be less than 128 bytes. The span name is sanitized\nand displayed in the Stackdriver Trace tool in the\n{% dynamic print site_values.console_name %}.\nThe name may be a method name or some other per-call site name.\nFor the same executable and the same call point, a best practice is\nto use a consistent name, which makes it easier to correlate\ncross-trace spans.",
"type": "string"
},
"spanId": {
"format": "uint64",
"description": "Identifier for the span. Must be a 64-bit integer other than 0 and\nunique within a trace.",
@ -270,8 +270,6 @@
"type": "string"
},
"kind": {
"description": "Distinguishes between spans generated in a particular context. For example,\ntwo spans with the same name may be distinguished using `RPC_CLIENT`\nand `RPC_SERVER` to identify queueing latency associated with the span.",
"type": "string",
"enumDescriptions": [
"Unspecified.",
"Indicates that the span covers server-side handling of an RPC or other\nremote network request.",
@ -281,20 +279,19 @@
"SPAN_KIND_UNSPECIFIED",
"RPC_SERVER",
"RPC_CLIENT"
]
],
"description": "Distinguishes between spans generated in a particular context. For example,\ntwo spans with the same name may be distinguished using `RPC_CLIENT`\nand `RPC_SERVER` to identify queueing latency associated with the span.",
"type": "string"
},
"labels": {
"description": "Collection of labels associated with the span. Label keys must be less than\n128 bytes. Label values must be less than 16 kilobytes (10MB for\n`/stacktrace` values).\n\nSome predefined label keys exist, or you may create your own. When creating\nyour own, we recommend the following formats:\n\n* `/category/product/key` for agents of well-known products (e.g.\n `/db/mongodb/read_size`).\n* `short_host/path/key` for domain-specific keys (e.g.\n `foo.com/myproduct/bar`)\n\nPredefined labels include:\n\n* `/agent`\n* `/component`\n* `/error/message`\n* `/error/name`\n* `/http/client_city`\n* `/http/client_country`\n* `/http/client_protocol`\n* `/http/client_region`\n* `/http/host`\n* `/http/method`\n* `/http/redirected_url`\n* `/http/request/size`\n* `/http/response/size`\n* `/http/status_code`\n* `/http/url`\n* `/http/user_agent`\n* `/pid`\n* `/stacktrace`\n* `/tid`",
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"name": {
"description": "Name of the span. Must be less than 128 bytes. The span name is sanitized\nand displayed in the Stackdriver Trace tool in the\n{% dynamic print site_values.console_name %}.\nThe name may be a method name or some other per-call site name.\nFor the same executable and the same call point, a best practice is\nto use a consistent name, which makes it easier to correlate\ncross-trace spans.",
"type": "string"
},
"description": "Collection of labels associated with the span. Label keys must be less than\n128 bytes. Label values must be less than 16 kilobytes (10MB for\n`/stacktrace` values).\n\nSome predefined label keys exist, or you may create your own. When creating\nyour own, we recommend the following formats:\n\n* `/category/product/key` for agents of well-known products (e.g.\n `/db/mongodb/read_size`).\n* `short_host/path/key` for domain-specific keys (e.g.\n `foo.com/myproduct/bar`)\n\nPredefined labels include:\n\n* `/agent`\n* `/component`\n* `/error/message`\n* `/error/name`\n* `/http/client_city`\n* `/http/client_country`\n* `/http/client_protocol`\n* `/http/client_region`\n* `/http/host`\n* `/http/method`\n* `/http/redirected_url`\n* `/http/request/size`\n* `/http/response/size`\n* `/http/status_code`\n* `/http/url`\n* `/http/user_agent`\n* `/pid`\n* `/stacktrace`\n* `/tid`",
"type": "object"
}
}
},
"id": "TraceSpan"
},
"Empty": {
"description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.",
@ -303,7 +300,6 @@
"id": "Empty"
},
"ListTracesResponse": {
"description": "The response message for the `ListTraces` method.",
"type": "object",
"properties": {
"nextPageToken": {
@ -311,19 +307,17 @@
"type": "string"
},
"traces": {
"description": "List of trace records returned.",
"items": {
"$ref": "Trace"
},
"type": "array"
"type": "array",
"description": "List of trace records returned."
}
},
"id": "ListTracesResponse"
"id": "ListTracesResponse",
"description": "The response message for the `ListTraces` method."
},
"Trace": {
"id": "Trace",
"description": "A trace describes how long it takes for an application to perform an\noperation. It consists of a set of spans, each of which represent a single\ntimed event within the operation.",
"type": "object",
"properties": {
"spans": {
"description": "Collection of spans in the trace.",
@ -333,17 +327,19 @@
"type": "array"
},
"projectId": {
"description": "Project ID of the Cloud project where the trace data is stored.",
"type": "string"
"type": "string",
"description": "Project ID of the Cloud project where the trace data is stored."
},
"traceId": {
"description": "Globally unique identifier for the trace. This identifier is a 128-bit\nnumeric value formatted as a 32-byte hex string.",
"type": "string"
"type": "string",
"description": "Globally unique identifier for the trace. This identifier is a 128-bit\nnumeric value formatted as a 32-byte hex string."
}
}
},
"id": "Trace",
"description": "A trace describes how long it takes for an application to perform an\noperation. It consists of a set of spans, each of which represent a single\ntimed event within the operation.",
"type": "object"
},
"Traces": {
"id": "Traces",
"description": "List of new or updated traces.",
"type": "object",
"properties": {
@ -354,7 +350,8 @@
},
"type": "array"
}
}
},
"id": "Traces"
}
},
"icons": {
@ -366,18 +363,21 @@
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/trace.readonly": {
"description": "Read Trace data for a project or application"
},
"https://www.googleapis.com/auth/trace.append": {
"description": "Write Trace data for a project or application"
},
"https://www.googleapis.com/auth/cloud-platform": {
"description": "View and manage your data across Google Cloud Platform services"
},
"https://www.googleapis.com/auth/trace.readonly": {
"description": "Read Trace data for a project or application"
}
}
}
},
"rootUrl": "https://cloudtrace.googleapis.com/",
"ownerDomain": "google.com"
"ownerDomain": "google.com",
"name": "cloudtrace",
"batchPath": "batch",
"title": "Stackdriver Trace API"
}

View File

@ -1,95 +1,18 @@
{
"servicePath": "",
"description": "Send and retrieve trace data from Stackdriver Trace. Data is generated and available by default for all App Engine applications. Data from other applications can be written to Stackdriver Trace for display, reporting, and analysis.\n",
"kind": "discovery#restDescription",
"basePath": "",
"revision": "20170905",
"documentationLink": "https://cloud.google.com/trace",
"id": "cloudtrace:v2",
"documentationLink": "https://cloud.google.com/trace",
"revision": "20170913",
"discoveryVersion": "v1",
"version_module": true,
"schemas": {
"TruncatableString": {
"properties": {
"truncatedByteCount": {
"format": "int32",
"description": "The number of bytes removed from the original string. If this\nvalue is 0, then the string was not shortened.",
"type": "integer"
},
"value": {
"description": "The shortened string. For example, if the original string was 500\nbytes long and the limit of the string was 128 bytes, then this\nvalue contains the first 128 bytes of the 500-byte string. Note that\ntruncation always happens on the character boundary, to ensure that\ntruncated string is still valid UTF8. In case of multi-byte characters,\nsize of truncated string can be less than truncation limit.",
"type": "string"
}
},
"id": "TruncatableString",
"description": "Represents a string that might be shortened to a specified length.",
"type": "object"
},
"StackTrace": {
"properties": {
"stackFrames": {
"$ref": "StackFrames",
"description": "Stack frames in this stack trace. A maximum of 128 frames are allowed."
},
"stackTraceHashId": {
"format": "uint64",
"description": "The hash ID is used to conserve network bandwidth for duplicate\nstack traces within a single trace.\n\nOften multiple spans will have identical stack traces.\nThe first occurrence of a stack trace should contain both the\n`stackFrame` content and a value in `stackTraceHashId`.\n\nSubsequent spans within the same request can refer\nto that stack trace by only setting `stackTraceHashId`.",
"type": "string"
}
},
"id": "StackTrace",
"description": "A call stack appearing in a trace.",
"type": "object"
},
"TimeEvent": {
"description": "A time-stamped annotation or network event in the Span.",
"type": "object",
"properties": {
"time": {
"format": "google-datetime",
"description": "The timestamp indicating the time the event occurred.",
"type": "string"
},
"networkEvent": {
"description": "An event describing an RPC message sent/received on the network.",
"$ref": "NetworkEvent"
},
"annotation": {
"description": "One or more key:value pairs.",
"$ref": "Annotation"
}
},
"id": "TimeEvent"
},
"ListSpansResponse": {
"properties": {
"nextPageToken": {
"description": "If defined, indicates that there might be more spans that match the\nrequest. Pass this as the value of `pageToken` in a subsequent request to\nretrieve additional spans.",
"type": "string"
},
"spans": {
"description": "The requested spans, if there are any in the specified trace.",
"items": {
"$ref": "Span"
},
"type": "array"
}
},
"id": "ListSpansResponse",
"description": "The response message for the `ListSpans` method.",
"type": "object"
},
"NetworkEvent": {
"description": "An event describing an RPC message sent or received on the network.",
"type": "object",
"properties": {
"messageId": {
"format": "uint64",
"description": "An identifier for the message, which must be unique in this span.",
"type": "string"
},
"compressedMessageSize": {
"format": "uint64",
"description": "The number of compressed bytes sent or received.",
"type": "string"
},
"time": {
"format": "google-datetime",
"description": "For sent messages, this is the time at which the first bit was sent.\nFor received messages, this is the time at which the last bit was\nreceived.",
@ -113,17 +36,41 @@
"Indicates a sent RPC message.",
"Indicates a received RPC message."
]
},
"messageId": {
"format": "uint64",
"description": "An identifier for the message, which must be unique in this span.",
"type": "string"
},
"compressedMessageSize": {
"type": "string",
"format": "uint64",
"description": "The number of compressed bytes sent or received."
}
},
"id": "NetworkEvent"
},
"StackFrame": {
"type": "object",
"properties": {
"columnNumber": {
"functionName": {
"$ref": "TruncatableString",
"description": "The fully-qualified name that uniquely identifies the function or\nmethod that is active in this frame (up to 1024 bytes)."
},
"lineNumber": {
"format": "int64",
"description": "The column number where the function call appears, if available.\nThis is important in JavaScript because of its anonymous functions.",
"description": "The line number in `file_name` where the function call appears.",
"type": "string"
},
"loadModule": {
"$ref": "Module",
"description": "The binary module from where the code was loaded."
},
"columnNumber": {
"type": "string",
"format": "int64",
"description": "The column number where the function call appears, if available.\nThis is important in JavaScript because of its anonymous functions."
},
"fileName": {
"$ref": "TruncatableString",
"description": "The name of the source file where the function call appears (up to 256\nbytes)."
@ -133,76 +80,64 @@
"description": "The version of the deployed source code (up to 128 bytes)."
},
"originalFunctionName": {
"description": "An un-mangled function name, if `function_name` is\n[mangled](http://www.avabodh.com/cxxin/namemangling.html). The name can\nbe fully-qualified (up to 1024 bytes).",
"$ref": "TruncatableString"
},
"functionName": {
"description": "The fully-qualified name that uniquely identifies the function or\nmethod that is active in this frame (up to 1024 bytes).",
"$ref": "TruncatableString"
},
"lineNumber": {
"format": "int64",
"description": "The line number in `file_name` where the function call appears.",
"type": "string"
},
"loadModule": {
"$ref": "Module",
"description": "The binary module from where the code was loaded."
"$ref": "TruncatableString",
"description": "An un-mangled function name, if `function_name` is\n[mangled](http://www.avabodh.com/cxxin/namemangling.html). The name can\nbe fully-qualified (up to 1024 bytes)."
}
},
"id": "StackFrame",
"description": "Represents a single stack frame in a stack trace.",
"type": "object"
"description": "Represents a single stack frame in a stack trace."
},
"Link": {
"description": "A pointer from the current span to another span in the same trace or in a\ndifferent trace. For example, this can be used in batching operations,\nwhere a single batch handler processes multiple requests from different\ntraces or when the handler receives a request from a different project.",
"type": "object",
"properties": {
"type": {
"enum": [
"TYPE_UNSPECIFIED",
"CHILD_LINKED_SPAN",
"PARENT_LINKED_SPAN"
],
"description": "The relationship of the current span relative to the linked span.",
"type": "string",
"enumDescriptions": [
"The relationship of the two spans is unknown.",
"The linked span is a child of the current span.",
"The linked span is a parent of the current span."
]
],
"enum": [
"TYPE_UNSPECIFIED",
"CHILD_LINKED_SPAN",
"PARENT_LINKED_SPAN"
],
"description": "The relationship of the current span relative to the linked span."
},
"attributes": {
"$ref": "Attributes",
"description": "A set of attributes on the link. There is a limit of 32 attributes per\nlink."
},
"traceId": {
"description": "`TRACE_ID` identifies a trace within a project.",
"type": "string"
"type": "string",
"description": "`TRACE_ID` identifies a trace within a project."
},
"spanId": {
"description": "`SPAN_ID` identifies a span within a trace.",
"type": "string"
"type": "string",
"description": "`SPAN_ID` identifies a span within a trace."
}
},
"id": "Link",
"description": "A pointer from the current span to another span in the same trace or in a\ndifferent trace. For example, this can be used in batching operations,\nwhere a single batch handler processes multiple requests from different\ntraces or when the handler receives a request from a different project.",
"type": "object"
"id": "Link"
},
"Annotation": {
"description": "Text annotation with a set of attributes.",
"type": "object",
"properties": {
"description": {
"$ref": "TruncatableString",
"description": "A user-supplied message describing the event. The maximum length for\nthe description is 256 bytes."
},
"attributes": {
"$ref": "Attributes",
"description": "A set of attributes on the annotation. There is a limit of 4 attributes\nper Annotation."
},
"description": {
"$ref": "TruncatableString",
"description": "A user-supplied message describing the event. The maximum length for\nthe description is 256 bytes."
}
},
"id": "Annotation",
"description": "Text annotation with a set of attributes.",
"type": "object"
"id": "Annotation"
},
"StackFrames": {
"description": "A collection of stack frames, which can be truncated.",
"type": "object",
"properties": {
"droppedFramesCount": {
"format": "int32",
@ -217,41 +152,28 @@
"type": "array"
}
},
"id": "StackFrames",
"description": "A collection of stack frames, which can be truncated.",
"type": "object"
},
"Trace": {
"properties": {
"name": {
"description": "The resource name of the trace in the following format:\n\n projects/[PROJECT_ID]/traces/TRACE_ID is a unique identifier for a trace within a project.\nThe ID is assigned when the trace is created.",
"type": "string"
}
},
"id": "Trace",
"description": "A trace describes how long it takes for an application to perform some\noperations. It consists of a set of spans, each representing\nan operation and including time information and operation details.",
"type": "object"
"id": "StackFrames"
},
"TimeEvents": {
"description": "A collection of `TimeEvent`s. A `TimeEvent` is a time-stamped annotation\non the span, consisting of either user-supplied key:value pairs, or\ndetails of an RPC message sent/received on the network.",
"type": "object",
"properties": {
"droppedNetworkEventsCount": {
"type": "integer",
"format": "int32",
"description": "The number of dropped network events in all the included time events.\nIf the value is 0, then no network events were dropped.",
"type": "integer"
"description": "The number of dropped network events in all the included time events.\nIf the value is 0, then no network events were dropped."
},
"droppedAnnotationsCount": {
"type": "integer",
"format": "int32",
"description": "The number of dropped annotations in all the included time events.\nIf the value is 0, then no annotations were dropped.",
"type": "integer"
"description": "The number of dropped annotations in all the included time events.\nIf the value is 0, then no annotations were dropped."
},
"timeEvent": {
"description": "A collection of `TimeEvent`s.",
"items": {
"$ref": "TimeEvent"
},
"type": "array"
"type": "array",
"description": "A collection of `TimeEvent`s."
}
},
"id": "TimeEvents"
@ -261,64 +183,65 @@
"type": "object",
"properties": {
"module": {
"description": "For example: main binary, kernel modules, and dynamic libraries\nsuch as libc.so, sharedlib.so (up to 256 bytes).",
"$ref": "TruncatableString"
"$ref": "TruncatableString",
"description": "For example: main binary, kernel modules, and dynamic libraries\nsuch as libc.so, sharedlib.so (up to 256 bytes)."
},
"buildId": {
"description": "A unique identifier for the module, usually a hash of its\ncontents (up to 128 bytes).",
"$ref": "TruncatableString"
"$ref": "TruncatableString",
"description": "A unique identifier for the module, usually a hash of its\ncontents (up to 128 bytes)."
}
},
"id": "Module"
},
"Status": {
"type": "object",
"properties": {
"message": {
"description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.",
"type": "string"
},
"details": {
"description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.",
"items": {
"type": "object",
"additionalProperties": {
"description": "Properties of the object. Contains field @type with type URL.",
"type": "any"
},
"type": "object"
"type": "any",
"description": "Properties of the object. Contains field @type with type URL."
}
},
"type": "array"
},
"code": {
"type": "integer",
"format": "int32",
"description": "The status code, which should be an enum value of google.rpc.Code.",
"type": "integer"
"description": "The status code, which should be an enum value of google.rpc.Code."
},
"message": {
"type": "string",
"description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client."
}
},
"id": "Status",
"description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.",
"type": "object"
"description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons."
},
"BatchWriteSpansRequest": {
"description": "The request message for the `BatchWriteSpans` method.",
"type": "object",
"properties": {
"spans": {
"description": "A collection of spans.",
"items": {
"$ref": "Span"
},
"type": "array"
"type": "array",
"description": "A collection of spans."
}
},
"id": "BatchWriteSpansRequest"
},
"Empty": {
"description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.",
"type": "object",
"properties": {},
"id": "Empty"
"id": "Empty",
"description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`."
},
"Span": {
"type": "object",
"properties": {
"parentSpanId": {
"description": "The [SPAN_ID] of this span's parent span. If this is a root span,\nthen this field must be empty.",
@ -330,75 +253,57 @@
"type": "string"
},
"startTime": {
"type": "string",
"format": "google-datetime",
"description": "The start time of the span. On the client side, this is the time kept by\nthe local machine where the span execution starts. On the server side, this\nis the time when the server's application handler starts running.",
"type": "string"
"description": "The start time of the span. On the client side, this is the time kept by\nthe local machine where the span execution starts. On the server side, this\nis the time when the server's application handler starts running."
},
"displayName": {
"$ref": "TruncatableString",
"description": "A description of the span's operation (up to 128 bytes).\nStackdriver Trace displays the description in the\n{% dynamic print site_values.console_name %}.\nFor example, the display name can be a qualified method name or a file name\nand a line number where the operation is called. A best practice is to use\nthe same display name within an application and at the same call point.\nThis makes it easier to correlate spans in different traces."
},
"timeEvents": {
"description": "The included time events. There can be up to 32 annotations and 128 network\nevents per span.",
"$ref": "TimeEvents"
"$ref": "TimeEvents",
"description": "The included time events. There can be up to 32 annotations and 128 network\nevents per span."
},
"links": {
"description": "A maximum of 128 links are allowed per Span.",
"$ref": "Links"
"$ref": "Links",
"description": "A maximum of 128 links are allowed per Span."
},
"attributes": {
"description": "A set of attributes on the span. There is a limit of 32 attributes per\nspan.",
"$ref": "Attributes"
"$ref": "Attributes",
"description": "A set of attributes on the span. There is a limit of 32 attributes per\nspan."
},
"spanId": {
"description": "The [SPAN_ID] portion of the span's resource name.",
"type": "string"
},
"childSpanCount": {
"type": "integer",
"format": "uint32",
"description": "An optional number of child spans that were generated while this span\nwas active. If set, allows implementation to detect missing child spans.",
"type": "integer"
"description": "An optional number of child spans that were generated while this span\nwas active. If set, allows implementation to detect missing child spans."
},
"sameProcessAsParentSpan": {
"description": "A highly recommended but not required flag that identifies when a trace\ncrosses a process boundary. True when the parent_span belongs to the\nsame process as the current span.",
"type": "boolean"
},
"status": {
"description": "An optional final status for this span.",
"$ref": "Status"
"$ref": "Status",
"description": "An optional final status for this span."
},
"name": {
"description": "The resource name of the span in the following format:\n\n projects/[PROJECT_ID]traces/[TRACE_ID]/spans/SPAN_ID is a unique identifier for a trace within a project.\n[SPAN_ID] is a unique identifier for a span within a trace,\nassigned when the span is created.",
"type": "string"
"type": "string",
"description": "The resource name of the span in the following format:\n\n projects/[PROJECT_ID]traces/[TRACE_ID]/spans/SPAN_ID is a unique identifier for a trace within a project.\n[SPAN_ID] is a unique identifier for a span within a trace,\nassigned when the span is created."
},
"stackTrace": {
"description": "Stack trace captured at the start of the span.",
"$ref": "StackTrace"
"$ref": "StackTrace",
"description": "Stack trace captured at the start of the span."
}
},
"id": "Span",
"description": "A span represents a single operation within a trace. Spans can be\nnested to form a trace tree. Often, a trace contains a root span\nthat describes the end-to-end latency, and one or more subspans for\nits sub-operations. A trace can also contain multiple root spans,\nor none at all. Spans do not need to be contiguous&mdash;there may be\ngaps or overlaps between spans in a trace.",
"type": "object"
},
"ListTracesResponse": {
"description": "The response message for the `ListTraces` method.",
"type": "object",
"properties": {
"nextPageToken": {
"description": "If there might be more results than those appearing in this response, then\n`next_page_token` is included. To get the next set of results, call this\nmethod again using the value of `next_page_token` as `page_token`.",
"type": "string"
},
"traces": {
"description": "List of trace records returned.",
"items": {
"$ref": "Trace"
},
"type": "array"
}
},
"id": "ListTracesResponse"
"description": "A span represents a single operation within a trace. Spans can be\nnested to form a trace tree. Often, a trace contains a root span\nthat describes the end-to-end latency, and one or more subspans for\nits sub-operations. A trace can also contain multiple root spans,\nor none at all. Spans do not need to be contiguous&mdash;there may be\ngaps or overlaps between spans in a trace."
},
"AttributeValue": {
"type": "object",
"properties": {
"intValue": {
"format": "int64",
@ -410,39 +315,39 @@
"type": "boolean"
},
"stringValue": {
"description": "A string up to 256 bytes long.",
"$ref": "TruncatableString"
"$ref": "TruncatableString",
"description": "A string up to 256 bytes long."
}
},
"id": "AttributeValue",
"description": "The allowed types for [VALUE] in a `[KEY]:[VALUE]` attribute.",
"type": "object"
"description": "The allowed types for [VALUE] in a `[KEY]:[VALUE]` attribute."
},
"Attributes": {
"description": "A set of attributes, each in the format `[KEY]:[VALUE]`.",
"type": "object",
"properties": {
"droppedAttributesCount": {
"type": "integer",
"format": "int32",
"description": "The number of attributes that were discarded. Attributes can be discarded\nbecause their keys are too long or because there are too many attributes.\nIf this value is 0 then all attributes are valid."
},
"attributeMap": {
"type": "object",
"additionalProperties": {
"$ref": "AttributeValue"
},
"description": "The set of attributes. Each attribute's key can be up to 128 bytes\nlong. The value can be a string up to 256 bytes, an integer, or the\nBoolean values `true` and `false`. For example:\n\n \"/instance_id\": \"my-instance\"\n \"/http/user_agent\": \"\"\n \"/http/request_bytes\": 300\n \"abc.com/myattribute\": true",
"type": "object"
},
"droppedAttributesCount": {
"format": "int32",
"description": "The number of attributes that were discarded. Attributes can be discarded\nbecause their keys are too long or because there are too many attributes.\nIf this value is 0 then all attributes are valid.",
"type": "integer"
"description": "The set of attributes. Each attribute's key can be up to 128 bytes\nlong. The value can be a string up to 256 bytes, an integer, or the\nBoolean values `true` and `false`. For example:\n\n \"/instance_id\": \"my-instance\"\n \"/http/user_agent\": \"\"\n \"/http/request_bytes\": 300\n \"abc.com/myattribute\": true"
}
},
"id": "Attributes"
},
"Links": {
"type": "object",
"properties": {
"droppedLinksCount": {
"type": "integer",
"format": "int32",
"description": "The number of dropped links after the maximum size was enforced. If\nthis value is 0, then no links were dropped.",
"type": "integer"
"description": "The number of dropped links after the maximum size was enforced. If\nthis value is 0, then no links were dropped."
},
"link": {
"description": "A collection of links.",
@ -453,8 +358,59 @@
}
},
"id": "Links",
"description": "A collection of links, which are references from this span to a span\nin the same or different trace.",
"type": "object"
"description": "A collection of links, which are references from this span to a span\nin the same or different trace."
},
"TruncatableString": {
"type": "object",
"properties": {
"truncatedByteCount": {
"type": "integer",
"format": "int32",
"description": "The number of bytes removed from the original string. If this\nvalue is 0, then the string was not shortened."
},
"value": {
"type": "string",
"description": "The shortened string. For example, if the original string was 500\nbytes long and the limit of the string was 128 bytes, then this\nvalue contains the first 128 bytes of the 500-byte string. Note that\ntruncation always happens on the character boundary, to ensure that\ntruncated string is still valid UTF8. In case of multi-byte characters,\nsize of truncated string can be less than truncation limit."
}
},
"id": "TruncatableString",
"description": "Represents a string that might be shortened to a specified length."
},
"StackTrace": {
"type": "object",
"properties": {
"stackFrames": {
"$ref": "StackFrames",
"description": "Stack frames in this stack trace. A maximum of 128 frames are allowed."
},
"stackTraceHashId": {
"format": "uint64",
"description": "The hash ID is used to conserve network bandwidth for duplicate\nstack traces within a single trace.\n\nOften multiple spans will have identical stack traces.\nThe first occurrence of a stack trace should contain both the\n`stackFrame` content and a value in `stackTraceHashId`.\n\nSubsequent spans within the same request can refer\nto that stack trace by only setting `stackTraceHashId`.",
"type": "string"
}
},
"id": "StackTrace",
"description": "A call stack appearing in a trace."
},
"TimeEvent": {
"type": "object",
"properties": {
"annotation": {
"$ref": "Annotation",
"description": "One or more key:value pairs."
},
"time": {
"type": "string",
"format": "google-datetime",
"description": "The timestamp indicating the time the event occurred."
},
"networkEvent": {
"$ref": "NetworkEvent",
"description": "An event describing an RPC message sent/received on the network."
}
},
"id": "TimeEvent",
"description": "A time-stamped annotation or network event in the Span."
}
},
"protocol": "rest",
@ -466,14 +422,11 @@
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/cloud-platform": {
"description": "View and manage your data across Google Cloud Platform services"
},
"https://www.googleapis.com/auth/trace.readonly": {
"description": "Read Trace data for a project or application"
},
"https://www.googleapis.com/auth/trace.append": {
"description": "Write Trace data for a project or application"
},
"https://www.googleapis.com/auth/cloud-platform": {
"description": "View and manage your data across Google Cloud Platform services"
}
}
}
@ -489,72 +442,7 @@
"resources": {
"traces": {
"methods": {
"list": {
"description": "Returns of a list of traces that match the specified filter conditions.",
"response": {
"$ref": "ListTracesResponse"
},
"httpMethod": "GET",
"parameterOrder": [
"parent"
],
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/trace.readonly"
],
"parameters": {
"parent": {
"pattern": "^projects/[^/]+$",
"location": "path",
"description": "Required. The project where the trace data is stored. The format\nis `projects/PROJECT_ID`.",
"type": "string",
"required": true
},
"orderBy": {
"location": "query",
"description": "Optional. A single field used to sort the returned traces.\nOnly the following field names can be used:\n\n* `trace_id`: the trace's ID field\n* `name`: the root span's resource name\n* `duration`: the difference between the root span's start time and end time\n* `start`: the start time of the root span\n\nSorting is in ascending order unless `desc` is appended to the sort field name.\nExample: `\"name desc\"`).",
"type": "string"
},
"filter": {
"location": "query",
"description": "Opional. Return only traces that match this\n[trace filter](/trace/docs/trace-filters). Example:\n\n \"label:/http/url root:/_ah/background my_label:17\"",
"type": "string"
},
"endTime": {
"location": "query",
"format": "google-datetime",
"description": "Optional. Do not return traces whose start time is later than this time.",
"type": "string"
},
"pageToken": {
"description": "Optional. If present, then retrieve the next batch of results from the\npreceding call to this method. `page_token` must be the value of\n`next_page_token` from the previous response. The values of other method\nparameters should be identical to those in the previous call.",
"type": "string",
"location": "query"
},
"startTime": {
"format": "google-datetime",
"description": "Optional. Do not return traces whose end time is earlier than this time.",
"type": "string",
"location": "query"
},
"pageSize": {
"location": "query",
"format": "int32",
"description": "Optional. The maximum number of results to return from this request.\nNon-positive values are ignored. The presence of `next_page_token` in the\nresponse indicates that more results might be available, even if fewer than\nthe maximum number of results is returned by this request.",
"type": "integer"
}
},
"flatPath": "v2/projects/{projectsId}/traces",
"id": "cloudtrace.projects.traces.list",
"path": "v2/{+parent}/traces"
},
"batchWrite": {
"path": "v2/{+name}/traces:batchWrite",
"id": "cloudtrace.projects.traces.batchWrite",
"description": "Sends new spans to Stackdriver Trace or updates existing traces. If the\nname of a trace that you send matches that of an existing trace, new spans\nare added to the existing trace. Attempt to update existing spans results\nundefined behavior. If the name does not match, a new trace is created\nwith given set of spans.",
"request": {
"$ref": "BatchWriteSpansRequest"
},
"httpMethod": "POST",
"parameterOrder": [
"name"
@ -562,84 +450,59 @@
"response": {
"$ref": "Empty"
},
"parameters": {
"name": {
"pattern": "^projects/[^/]+$",
"location": "path",
"description": "Required. Name of the project where the spans belong. The format is\n`projects/PROJECT_ID`.",
"type": "string",
"required": true
}
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/trace.append"
],
"flatPath": "v2/projects/{projectsId}/traces:batchWrite"
},
"listSpans": {
"response": {
"$ref": "ListSpansResponse"
},
"parameterOrder": [
"parent"
],
"httpMethod": "GET",
"parameters": {
"pageToken": {
"location": "query",
"description": "Optional. If present, then retrieve the next batch of results from the\npreceding call to this method. `page_token` must be the value of\n`next_page_token` from the previous response. The values of other method\nparameters should be identical to those in the previous call.",
"type": "string"
},
"parent": {
"pattern": "^projects/[^/]+/traces/[^/]+$",
"name": {
"location": "path",
"description": "Required: The resource name of the trace containing the spans to list.\nThe format is `projects/PROJECT_ID/traces/TRACE_ID`.",
"description": "Required. Name of the project where the spans belong. The format is\n`projects/PROJECT_ID`.",
"type": "string",
"required": true
"required": true,
"pattern": "^projects/[^/]+$"
}
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/trace.readonly"
],
"flatPath": "v2/projects/{projectsId}/traces/{tracesId}:listSpans",
"id": "cloudtrace.projects.traces.listSpans",
"path": "v2/{+parent}:listSpans",
"description": "Returns a list of spans within a trace."
"flatPath": "v2/projects/{projectsId}/traces:batchWrite",
"path": "v2/{+name}/traces:batchWrite",
"id": "cloudtrace.projects.traces.batchWrite",
"request": {
"$ref": "BatchWriteSpansRequest"
},
"description": "Sends new spans to Stackdriver Trace or updates existing traces. If the\nname of a trace that you send matches that of an existing trace, new spans\nare added to the existing trace. Attempt to update existing spans results\nundefined behavior. If the name does not match, a new trace is created\nwith given set of spans."
}
},
"resources": {
"spans": {
"methods": {
"create": {
"response": {
"flatPath": "v2/projects/{projectsId}/traces/{tracesId}/spans/{spansId}",
"path": "v2/{+name}",
"id": "cloudtrace.projects.traces.spans.create",
"request": {
"$ref": "Span"
},
"description": "Creates a new Span.",
"httpMethod": "PUT",
"parameterOrder": [
"name"
],
"httpMethod": "PUT",
"response": {
"$ref": "Span"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/trace.append"
],
"parameters": {
"name": {
"description": "The resource name of the span in the following format:\n\n projects/[PROJECT_ID]traces/[TRACE_ID]/spans/SPAN_ID is a unique identifier for a trace within a project.\n[SPAN_ID] is a unique identifier for a span within a trace,\nassigned when the span is created.",
"type": "string",
"required": true,
"pattern": "^projects/[^/]+/traces/[^/]+/spans/[^/]+$",
"location": "path"
"location": "path",
"description": "The resource name of the span in the following format:\n\n projects/[PROJECT_ID]traces/[TRACE_ID]/spans/SPAN_ID is a unique identifier for a trace within a project.\n[SPAN_ID] is a unique identifier for a span within a trace,\nassigned when the span is created."
}
},
"flatPath": "v2/projects/{projectsId}/traces/{tracesId}/spans/{spansId}",
"id": "cloudtrace.projects.traces.spans.create",
"path": "v2/{+name}",
"request": {
"$ref": "Span"
},
"description": "Creates a new Span."
}
}
}
}
@ -649,69 +512,46 @@
}
},
"parameters": {
"quotaUser": {
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"type": "string",
"location": "query"
},
"pp": {
"description": "Pretty-print response.",
"default": "true",
"type": "boolean",
"location": "query"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"type": "string",
"location": "query"
},
"bearer_token": {
"location": "query",
"description": "OAuth bearer token.",
"type": "string"
},
"upload_protocol": {
"type": "string",
"location": "query",
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"type": "string"
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\")."
},
"prettyPrint": {
"location": "query",
"description": "Returns response with indentations and line breaks.",
"default": "true",
"type": "boolean",
"location": "query"
"type": "boolean"
},
"fields": {
"location": "query",
"description": "Selector specifying which fields to include in a partial response.",
"type": "string"
},
"uploadType": {
"location": "query",
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"type": "string"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"type": "string",
"location": "query"
},
"callback": {
"location": "query",
"description": "JSONP",
"type": "string"
},
"$.xgafv": {
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"enum": [
"1",
"2"
],
"description": "V1 error format.",
"type": "string"
"type": "string",
"enumDescriptions": [
"v1 error format",
"v2 error format"
]
},
"callback": {
"type": "string",
"location": "query",
"description": "JSONP"
},
"alt": {
"description": "Data format for response.",
"default": "json",
"enum": [
"json",
"media",
@ -723,22 +563,42 @@
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query"
"location": "query",
"description": "Data format for response.",
"default": "json"
},
"key": {
"location": "query",
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"type": "string",
"location": "query"
"type": "string"
},
"access_token": {
"type": "string",
"location": "query",
"description": "OAuth access token.",
"description": "OAuth access token."
},
"quotaUser": {
"type": "string",
"location": "query",
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters."
},
"pp": {
"location": "query",
"description": "Pretty-print response.",
"default": "true",
"type": "boolean"
},
"bearer_token": {
"type": "string",
"location": "query",
"description": "OAuth bearer token."
},
"oauth_token": {
"location": "query",
"description": "OAuth 2.0 token for the current user.",
"type": "string"
}
},
"version": "v2",
"baseUrl": "https://cloudtrace.googleapis.com/",
"description": "Send and retrieve trace data from Stackdriver Trace. Data is generated and available by default for all App Engine applications. Data from other applications can be written to Stackdriver Trace for display, reporting, and analysis.\n",
"kind": "discovery#restDescription",
"servicePath": ""
"baseUrl": "https://cloudtrace.googleapis.com/"
}

Some files were not shown because too many files have changed in this diff Show More